Search Results

Search found 64639 results on 2586 pages for 'work stealing'.

Page 23/2586 | < Previous Page | 19 20 21 22 23 24 25 26 27 28 29 30  | Next Page >

  • How does a collison engine work?

    - by JXPheonix
    Original question: Click me How exactly does a collision engine work? This is an extremely broad question. What code keeps things bouncing against each other, what code makes the player walk into a wall instead of walk through the wall? How does the code constantly refresh the players position and objects position to keep gravity and collision working as it should? If you don't know what a collision engine is, basically it's generally used in platformer games to make the player acutally hit walls and the like. There's the 2d type and the 3d type, but they all accomplish the same thing: collision. So, what keeps a collision engine ticking?

    Read the article

  • Does Hauppauge WinTVR 900H work with Digital TV in the UK

    - by SimplySimon
    I have been trying to sort out my Hauppauge WinTV 900H USB Tuner. Here in the UK, we do not have Analogue TV any more as we are fully converted to digital. I have had this working in Windows a while ago, but am having no joy in Ubuntu 13.04 all I get is a blue screen and no settings for the UK. Can anyone advise me how to set this up on my laptop. I have tried: Does Hauppauge WinTV HVR-900 (r2) [USB ID 2040:6502] work with ubuntu 12.04 LTS? I am using TVTime I have also read this page, which makes me think that this unit can only receive Analogue signals, which are no longer transmitted in the UK (which could be my problem!) Laptop Specifications: Intel® Core™ i3-2350M CPU @ 2.30GHz × 4 Intel® Sandybridge Mobile 6MB RAM Any advice would be greatly appreciated.

    Read the article

  • How to get Rosegarden to work with timidity?

    - by molybtek
    I'm having problems getting Rosegarden to play midi using Timidity on Ubuntu 11.10 amd64. I've tried mapping the MIDI playback device to one of the Timidity port that was automatically created on start up and that failed. I've also tried manually starting timidity using the -iA option, and mapping the Rosegarden's MIDI playback device to one of the new ports, and that still failed. When I close Rosegarden, I can hear one or two notes get played. Would anyone know how I can get Rosegarden to work again. Thanks.

    Read the article

  • OOW 12: Hardware and Software Engineered to Work Together

    - by kellsey.ruppel
    If you were among the thousands of folks that filled the Moscone Center Hall D last night to hear Larry Ellison’s keynote, this will be old news to you.  If you weren’t able to catch the session, Larry covered Oracle’s fundamentally different approach to delivering technology that is engineered to work together to give customers extreme performance, simplicity, and cost savings. As you many know, innovating for growth requires the right investments and the right technology. And Oracle is equipped and ready. If you are attending Oracle OpenWorld, you’ll want to be sure you don’t miss out on any of the following activities! Oracle OpenWorld Music Festival Oracle WebCenter Customer Appreciation Reception | Tues, Oct 2 | 6:30pm-9:30pm | RSVP Oracle WebCenter Strategy & Vision | Mon, Oct 1 | 10:45am-11:45am Oracle WebCenter Focus On Guide | Events, Activities, Hands on Labs & More!

    Read the article

  • Free libraries to work with Excel

    - by Danil Gholtsman
    I got some excel files, I need to read data from it and upload data to some database (I need to use firebird, but whatever). Right now I use <QAxObject> from Qt and code look like QAxObject* excel = new QAxObject("Excel.Application"); //pointer to excel //excel->setProperty("Visible", false); QAxObject* workbooks = excel->querySubObject("WorkBooks"); //get pointer to booklist workbooks->dynamicCall("Open (const QString&)", QString("C:\\databases\\test.xls")); //opening file, getting pointer to booklist QAxObject* workbook = excel->querySubObject("ActiveWorkBook"); QAxObject* worksheets = workbook->querySubObject("WorkSheets"); etc. The problem is that this way on users PC there must be installed Excel. Is there exists some free C++ libraries to work with *.xls, *.xlsx files without Excel installed?

    Read the article

  • Apple wireless mouse and keyboard doens't work

    - by drigoSkalWalker
    I paired the mouse and keyboard on ubuntu, but it seems not work. I got this error in /var/log/syslog kernel: [ 1875.935712] input: Apple Magic Mouse as /devices/pci0000:00/0000:00:12.0/usb4/4-3/4-3:1.0/bluetooth/hci0/hci0:2/input34 kernel: [ 1875.935885] evdev: no more free evdev devices kernel: [ 1875.935893] input: failed to attach handler evdev to device input34, error: -23 kernel: [ 1875.936049] magicmouse 0005:05AC:030D.0003: input,hidraw0: BLUETOOTH HID v3.06 Mouse [Apple Magic Mouse] on 00:19:5D:0F:4A:F6 kernel: [ 2334.787710] input: Apple Wireless Keyboard as /devices/pci0000:00/0000:00:12.0/usb4/4-3/4-3:1.0/bluetooth/hci0/hci0:4/input36 kernel: [ 2334.787729] evdev: no more free evdev devices kernel: [ 2334.787737] input: failed to attach handler evdev to device input36, error: -23 kernel: [ 2334.787999] generic-bluetooth 0005:05AC:0255.0005: input,hidraw1: BLUETOOTH HID v0.50 Keyboard [Apple Wireless Keyboard] on 00:19:5D:0F:4A:F6 Nothing appears in xinput --list, only the wired mouse and keyboard. How to fix that?

    Read the article

  • Getting wireless to work on Ubuntu 11.10 (on a mac machine)

    - by yayu
    I have a 2008 white 13.3 inch macbook that now solely runs ubuntu. However, I cannot get wifi or cable to work on it. Regarding the cable, it atleast tries to connect but eventually disconnects from the wired network. Here is the output for lspci (pastebin) I tried installing b43-fwcutter and firmware-b43 but get errors. (I loaded them from a thumb drive and tried sudo dpkg -i). I cannot understand these instructions from the documentation, as I cannot locate the pool directory. b43-fwcutter is located on the Ubuntu install media under ../pool/main/b/b43-fwcutter/ and patch is located under ../pool/main/p/patch/ or both in the official repositories online. Note: In some versions (10.04 and 11.04 at least) there is not a /pool/main/p/patch/ If this file is missing then you don't need it. In this case you only need to install /pool/main/b/b43-fwcutter by following the instructions below.

    Read the article

  • How should my local git workflow work?

    - by Anonymous -
    At home, I have a server that is running some software (on a LAMP stack, but only accessible internally). I have another machine and a laptop that I both use for developing said software. What is the best workflow for me? Should I have a repository on my local server, create a live branch, staging branch and development branch, then checkout the development branch from my laptop/development PC to work on, commit that back when I'm done, then merge the development branch with the staging branch for testing, before further merging to the live branch? Would I simply checkout the production branch to my /www/var/ on my server? Or am I thinking/going about this all wrong? Thanks.

    Read the article

  • Ubuntu 12.10 Network Connection menu GUI doesnt work properly

    - by wax
    Many a times I have seen When I click on network connection(besides volume icon), I am unable to select any options. When I hover over VPN connections, the list shows nothing. I have added many VPNs. Network menu becomes non responsive to any clicks. This is annoying because I am not able to connect to any of the VPN connections. "Enable Wireless", "Edit Connections" or any other option doesnt work at all. Restarting ubuntu fixes this issue. But problem starts randomly again and restarting my laptop is the only way to fix it. Is this a known bug? Any ways to fix this prob?

    Read the article

  • Why Skype doesn't work in Quantal

    - by Lionthinker
    Since updating to Quantal Skype doesn't work and I get this error when updating: W:GPG error: http://ppa.launchpad.net quantal Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F6A071ABEE5D5BA2 W:Failed to fetch http://archive.canonical.com/commercial-ppa-uploaders/skype/ubuntu/dists/quantal/main/source/Sources 404 Not Found [IP: 91.189.92.191 80] W:Failed to fetch http://archive.canonical.com/commercial-ppa-uploaders/skype/ubuntu/dists/quantal/main/binary-amd64/Packages 404 Not Found [IP: 91.189.92.191 80] W:Failed to fetch http://archive.canonical.com/commercial-ppa-uploaders/skype/ubuntu/dists/quantal/main/binary-i386/Packages 404 Not Found [IP: 91.189.92.191 80] E:Some index files failed to download. They have been ignored, or old ones used instead.

    Read the article

  • Radeon HD5570 HDMI Video Card 5.1 Audio doesn't work

    - by ryandlf
    I am using Ubuntu and XMBC on my HTPC and have chosen the Radeon HD5570 Video card which has an HDMI output. In the sound preferences there is no surround sound option for the video card just stereo and although I can get sound through it in XBMC, my receiver does not state Dolby Digital on movies that are in fact Dolby so its definitely not giving me the true sound it should. Does this card not support surround sound through HDMI and I somehow missed it? If that is the case does anyone have suggestion that has been tested and works? Id like to know its going to work before investing in yet another video card. UPDATE I purchased a Nvidia GeForce GTS 450, plugged it in, downloaded the proprietary driver from the system control panel, disabled the onboard audio from the BIOS (not sure if this was necessary but I did it anyways), and changed the sound settings to use the new video card. Everything works flawlessly. It was a seemless setup.

    Read the article

  • Question about whether I should pursue minors or work towards a masters [closed]

    - by user75493
    I'm a sophomore about to go into my Spring semester in a few weeks and I am trying to decide some major things that will affect the next few years of my life and was looking for some guidance/advice. I'm currently working towards a Bachelors in Computer Science and my question was whether I should minor in Corporate Strategy and Math or just work towards a Masters in Computer Science? I was wondering if employers are more looking for Masters degrees in Computer Science or if those minors could be beneficial to me. Some things that may affect responses: I already have all my other requirements filled for graduating except my Computer Science classes, I've already had an internship this past summer and am already hearing back from several companies about internships for this upcoming summer. Thanks in advance! - Alex

    Read the article

  • Cannot make NVIDIA driver work with Ubuntu 12.10

    - by user1293231
    I seem to have a problem similar to many but I didn't manage to get it solved: have a Lenovo N581 with an NVIDIA GeForce 610M have just installed a fresh Ubuntu 12.10 64 bits, + KDE and am trying to have my NVIDIA card work. Have tried all workarounds posted: purge nvidia, install kernel source/headers and then reinstall nvidia-current-updates (or just nvidia-current), do "sudo nvidia-xconfig". It does create a xorg.conf but does not much (no Module Section by the way). The result is that my system (jokey) tells me that the driver is there but not in use and I only get a 640x480 resolution. If I try to launch nvidia-settings it does indeed tell me that the nvidia driver is not used. I do all this under kde but I guess it does matter at this stage. Any hint of how to resolve this? I feel stuck and cannot use any of the acceleration which is partly why I got that laptop in the first place... thanks for any help/advise you may provide!

    Read the article

  • Tracking work history in a git repo

    - by Code-Guru
    Previous related questions: Code bases for desktop and mobile versions of the same app Git branching and tagging best practices Question: I have split my repo into three directories (swing, android, and common) as suggested by @KarlBielefeldt in response to my previous question. Now I am jumping back and forth between developing my Android port and tweaking/adding features to my original Swing app. All of my commits are linear (fast-forward) and only my commit messages give hints indicating whether I'm working on my Swing app or my Android app. Is there a better way to keep track of the work flow in my git repo?

    Read the article

  • Miracles in your work

    - by MobileDev123
    Lot of things has been discussed that can be taken as negative things about programmers, Lets discussed about something good and unexpected happenings in your programmer life... Like: (after R&D of two days and a lot of disappointments ) You just spend an hour with your PM to explain that some feature having some problem and we are unable to release this module in today's beta... after a lot of arguments you are given an hour to make your app work without this module, you sit on your workstation to make a release and all of a sudden you found a silly problem behind that module..... (you solve it and prepare a desired build) did you face miracle (= sudden, positive surprises?) in your life?? what was your reaction in case you have come through such experience?? (N.B. I know my English is not that good and that's why I'm open to every linguistic mistakes needed to be corrected)

    Read the article

  • Two approaches to adding freelance/contract work to resume [on hold]

    - by melhosseiny
    Approach A Title, Company A Freelance + Title, Company B Title, Company C Freelance + Title, Company D Title, Intern, Company E Approach B Title, Company A Title, Company B Title, Self Title, Intern, Company D In approach B, you would list all freelance/contract work you did under the "Title, Self" experience. For example: Company A Project 1 Project 2 Company B Project 1 Question Which of these two approaches is better? And why? Update I think there's value in this question to the community as it relates specifically to programmers. I'd think that handling this issue on a resume is career-specific. Also, I've found similar questions on the site: Referring to freelance marketplaces as evidence of the experience for a potential full-time employer How to write freelancing in resume for programmers job In any case, I don't think it should be closed. It should be migrated to The Workplace or Freelancing.

    Read the article

  • khotkey script calling bindings stop to work on switching to Quantal

    - by Adobe
    I have many scripts which I call with khotkey. For example I have a hotkey which executes: bk_starts_or_brings.bash 'Konsole' konsole On updating to Quantal -- it stops to work: if I call that key -- it searches bk_starts_or_brings.bash 'Konsole' konsole in google in default web-browser. I tried: sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core sudo dpkg-reconfigure xserver-xorg sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases fakeroot libqtgui4 When I start the command from konsole -- it works as expected, but when I call it with khotkey -- it doesn't. I guess someone shadows my keybiding. Or some daemon is not run on startup.

    Read the article

  • Programers first day at work [closed]

    - by peraueb8921
    Next week I am getting my first job as a programmer in a well known company. I have worked in other companies before, but mostly in IT department. As you can understand, I am very determined to succeed in there. I have found some related articles in the Web, but I am not even sure they are written from developers. So I am asking you, to tell us about what will you do in another way if you could "reverse" the time, and what can I do to succeed. Of course "work hard" is one of them but what about book/article reading, certifications, good practises to make good impression to my team leader or whatever else you think would help? I know that it maybe fit better at wordplace.stackexchange.com, but this is a programmer oriented post and can only be answered by experienced programmers. Thank you.

    Read the article

  • wow ok win8 still needs some work.

    - by foxjazz
    I was on geeks with blogs on win8, and noticed I couldn't create a new post.Now using chrome with 8 and I am posting.I am finding things I like about windows 8 and things that I just don't know yet.Like what's the shortcut key to bring me to a clean legacy desktop?And also what about those apps that get suspended like the explorer app when you go to mail, and your explorer app was in the middle of downloading a file. So you have to start the download again.I am impressed with some of the improvements, however I think in order for all these things to be accepted as a matter of well by the masses, chrome or firefox (ie won't do it) needs to upgrade their browsers to work with html5 and css3 fully. Obviously the first group that does that will be the browser of choice for any user.There are other observations that I am on the verge of making, but I need to research a bit more before making any comments on the new windows store visual studio 12 environment.Have a good day,Signing off.Foxjazz

    Read the article

  • Wireless will not work in fresh ubuntu 12.04 lts installation

    - by Taake Manning
    I did a fresh Ubuntu 12.04 install on my Sony Vaio laptop, which worked perfectly with 10.04. Now my wireless won't work. I have read just about every Q&A on the subject and I have tried different solutions, including the official troubleshooting guides. My laptop is equipped with a Intel 5100 wireless device. Ubuntu recognizes the device and it's status is given as connected in nm-tool. I can ping the gateway, my own IP number and localhost. Rfkill shows no soft or hard blocks. Any ideas? I am just a few hours shy of reinstalling good old 10.04! Taake

    Read the article

  • COCOS2D-html5 MoveBy doesn't work

    - by ufo
    I'd like to run an action on a sprite using the MoveBy action. After lots of attempts, I can't achieve the goal... I have issues with the MoveBy in 2 different projects, so maybe I'm missing something in the setup... But I can't figure what! The instruction is like this: this.platform1Sprite.runAction(cc.MoveBy.create(1, cc.p(200, 0))); I don't get any error, simply it doesn't work. Thank you in advance.

    Read the article

  • Wine doesn't work (Problem with the mount manager)

    - by audrianore
    I didn't know exactly when the problem occurred. My Wine worked well a couple days ago. Then, I was just about to install some Windows programs hours ago but I got nothing. No installer window showed up, and no error report. It just won't work. And now I just found where the problem is (screenshot below), but I don't know how to fix it. Any idea? Any help would be appreciated. Thanks in advance. Details: Wine 1.4 Ubuntu 12.04 LTS I tried: Autoremove in Terminal Delete the software configuration

    Read the article

  • Ubuntu 12.10 doesn't work after update

    - by ACRTH
    12.10 doesn't work after a partial distribution update. I had some trouble before I began the update, and the Partial Update thingy appeared. It took about 6 hours to update/upgrade, don't know why. After the update, I restarted the laptop and nautilus doesn't appear nor does Unity. I can't switch to Gnome or anything else to try and fix it. The resolution is weird (doesn't fill out the right side of the screen). I'm almost sure it's Compiz who's the sinner (or me.) but I need help to get everything working again. Internet connections is fine. I have tried sudo apt-get install -f and sudo apt-get upgrade and so on.

    Read the article

  • How LINQ to Object statements work

    - by rajbk
    This post goes into detail as to now LINQ statements work when querying a collection of objects. This topic assumes you have an understanding of how generics, delegates, implicitly typed variables, lambda expressions, object/collection initializers, extension methods and the yield statement work. I would also recommend you read my previous two posts: Using Delegates in C# Part 1 Using Delegates in C# Part 2 We will start by writing some methods to filter a collection of data. Assume we have an Employee class like so: 1: public class Employee { 2: public int ID { get; set;} 3: public string FirstName { get; set;} 4: public string LastName {get; set;} 5: public string Country { get; set; } 6: } and a collection of employees like so: 1: var employees = new List<Employee> { 2: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 3: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 4: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 5: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" }, 6: }; Filtering We wish to  find all employees that have an even ID. We could start off by writing a method that takes in a list of employees and returns a filtered list of employees with an even ID. 1: static List<Employee> GetEmployeesWithEvenID(List<Employee> employees) { 2: var filteredEmployees = new List<Employee>(); 3: foreach (Employee emp in employees) { 4: if (emp.ID % 2 == 0) { 5: filteredEmployees.Add(emp); 6: } 7: } 8: return filteredEmployees; 9: } The method can be rewritten to return an IEnumerable<Employee> using the yield return keyword. 1: static IEnumerable<Employee> GetEmployeesWithEvenID(IEnumerable<Employee> employees) { 2: foreach (Employee emp in employees) { 3: if (emp.ID % 2 == 0) { 4: yield return emp; 5: } 6: } 7: } We put these together in a console application. 1: using System; 2: using System.Collections.Generic; 3: //No System.Linq 4:  5: public class Program 6: { 7: [STAThread] 8: static void Main(string[] args) 9: { 10: var employees = new List<Employee> { 11: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 12: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 13: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 14: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" }, 15: }; 16: var filteredEmployees = GetEmployeesWithEvenID(employees); 17:  18: foreach (Employee emp in filteredEmployees) { 19: Console.WriteLine("ID {0} First_Name {1} Last_Name {2} Country {3}", 20: emp.ID, emp.FirstName, emp.LastName, emp.Country); 21: } 22:  23: Console.ReadLine(); 24: } 25: 26: static IEnumerable<Employee> GetEmployeesWithEvenID(IEnumerable<Employee> employees) { 27: foreach (Employee emp in employees) { 28: if (emp.ID % 2 == 0) { 29: yield return emp; 30: } 31: } 32: } 33: } 34:  35: public class Employee { 36: public int ID { get; set;} 37: public string FirstName { get; set;} 38: public string LastName {get; set;} 39: public string Country { get; set; } 40: } Output: ID 2 First_Name Jim Last_Name Ashlock Country UK ID 4 First_Name Jill Last_Name Anderson Country AUS Our filtering method is too specific. Let us change it so that it is capable of doing different types of filtering and lets give our method the name Where ;-) We will add another parameter to our Where method. This additional parameter will be a delegate with the following declaration. public delegate bool Filter(Employee emp); The idea is that the delegate parameter in our Where method will point to a method that contains the logic to do our filtering thereby freeing our Where method from any dependency. The method is shown below: 1: static IEnumerable<Employee> Where(IEnumerable<Employee> employees, Filter filter) { 2: foreach (Employee emp in employees) { 3: if (filter(emp)) { 4: yield return emp; 5: } 6: } 7: } Making the change to our app, we create a new instance of the Filter delegate on line 14 with a target set to the method EmployeeHasEvenId. Running the code will produce the same output. 1: public delegate bool Filter(Employee emp); 2:  3: public class Program 4: { 5: [STAThread] 6: static void Main(string[] args) 7: { 8: var employees = new List<Employee> { 9: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 10: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 11: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 12: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 13: }; 14: var filterDelegate = new Filter(EmployeeHasEvenId); 15: var filteredEmployees = Where(employees, filterDelegate); 16:  17: foreach (Employee emp in filteredEmployees) { 18: Console.WriteLine("ID {0} First_Name {1} Last_Name {2} Country {3}", 19: emp.ID, emp.FirstName, emp.LastName, emp.Country); 20: } 21: Console.ReadLine(); 22: } 23: 24: static bool EmployeeHasEvenId(Employee emp) { 25: return emp.ID % 2 == 0; 26: } 27: 28: static IEnumerable<Employee> Where(IEnumerable<Employee> employees, Filter filter) { 29: foreach (Employee emp in employees) { 30: if (filter(emp)) { 31: yield return emp; 32: } 33: } 34: } 35: } 36:  37: public class Employee { 38: public int ID { get; set;} 39: public string FirstName { get; set;} 40: public string LastName {get; set;} 41: public string Country { get; set; } 42: } Lets use lambda expressions to inline the contents of the EmployeeHasEvenId method in place of the method. The next code snippet shows this change (see line 15).  For brevity, the Employee class declaration has been skipped. 1: public delegate bool Filter(Employee emp); 2:  3: public class Program 4: { 5: [STAThread] 6: static void Main(string[] args) 7: { 8: var employees = new List<Employee> { 9: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 10: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 11: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 12: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 13: }; 14: var filterDelegate = new Filter(EmployeeHasEvenId); 15: var filteredEmployees = Where(employees, emp => emp.ID % 2 == 0); 16:  17: foreach (Employee emp in filteredEmployees) { 18: Console.WriteLine("ID {0} First_Name {1} Last_Name {2} Country {3}", 19: emp.ID, emp.FirstName, emp.LastName, emp.Country); 20: } 21: Console.ReadLine(); 22: } 23: 24: static bool EmployeeHasEvenId(Employee emp) { 25: return emp.ID % 2 == 0; 26: } 27: 28: static IEnumerable<Employee> Where(IEnumerable<Employee> employees, Filter filter) { 29: foreach (Employee emp in employees) { 30: if (filter(emp)) { 31: yield return emp; 32: } 33: } 34: } 35: } 36:  The output displays the same two employees.  Our Where method is too restricted since it works with a collection of Employees only. Lets change it so that it works with any IEnumerable<T>. In addition, you may recall from my previous post,  that .NET 3.5 comes with a lot of predefined delegates including public delegate TResult Func<T, TResult>(T arg); We will get rid of our Filter delegate and use the one above instead. We apply these two changes to our code. 1: public class Program 2: { 3: [STAThread] 4: static void Main(string[] args) 5: { 6: var employees = new List<Employee> { 7: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 8: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 9: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 10: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 11: }; 12:  13: var filteredEmployees = Where(employees, emp => emp.ID % 2 == 0); 14:  15: foreach (Employee emp in filteredEmployees) { 16: Console.WriteLine("ID {0} First_Name {1} Last_Name {2} Country {3}", 17: emp.ID, emp.FirstName, emp.LastName, emp.Country); 18: } 19: Console.ReadLine(); 20: } 21: 22: static IEnumerable<T> Where<T>(IEnumerable<T> source, Func<T, bool> filter) { 23: foreach (var x in source) { 24: if (filter(x)) { 25: yield return x; 26: } 27: } 28: } 29: } We have successfully implemented a way to filter any IEnumerable<T> based on a  filter criteria. Projection Now lets enumerate on the items in the IEnumerable<Employee> we got from the Where method and copy them into a new IEnumerable<EmployeeFormatted>. The EmployeeFormatted class will only have a FullName and ID property. 1: public class EmployeeFormatted { 2: public int ID { get; set; } 3: public string FullName {get; set;} 4: } We could “project” our existing IEnumerable<Employee> into a new collection of IEnumerable<EmployeeFormatted> with the help of a new method. We will call this method Select ;-) 1: static IEnumerable<EmployeeFormatted> Select(IEnumerable<Employee> employees) { 2: foreach (var emp in employees) { 3: yield return new EmployeeFormatted { 4: ID = emp.ID, 5: FullName = emp.LastName + ", " + emp.FirstName 6: }; 7: } 8: } The changes are applied to our app. 1: public class Program 2: { 3: [STAThread] 4: static void Main(string[] args) 5: { 6: var employees = new List<Employee> { 7: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 8: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 9: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 10: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 11: }; 12:  13: var filteredEmployees = Where(employees, emp => emp.ID % 2 == 0); 14: var formattedEmployees = Select(filteredEmployees); 15:  16: foreach (EmployeeFormatted emp in formattedEmployees) { 17: Console.WriteLine("ID {0} Full_Name {1}", 18: emp.ID, emp.FullName); 19: } 20: Console.ReadLine(); 21: } 22:  23: static IEnumerable<T> Where<T>(IEnumerable<T> source, Func<T, bool> filter) { 24: foreach (var x in source) { 25: if (filter(x)) { 26: yield return x; 27: } 28: } 29: } 30: 31: static IEnumerable<EmployeeFormatted> Select(IEnumerable<Employee> employees) { 32: foreach (var emp in employees) { 33: yield return new EmployeeFormatted { 34: ID = emp.ID, 35: FullName = emp.LastName + ", " + emp.FirstName 36: }; 37: } 38: } 39: } 40:  41: public class Employee { 42: public int ID { get; set;} 43: public string FirstName { get; set;} 44: public string LastName {get; set;} 45: public string Country { get; set; } 46: } 47:  48: public class EmployeeFormatted { 49: public int ID { get; set; } 50: public string FullName {get; set;} 51: } Output: ID 2 Full_Name Ashlock, Jim ID 4 Full_Name Anderson, Jill We have successfully selected employees who have an even ID and then shaped our data with the help of the Select method so that the final result is an IEnumerable<EmployeeFormatted>.  Lets make our Select method more generic so that the user is given the freedom to shape what the output would look like. We can do this, like before, with lambda expressions. Our Select method is changed to accept a delegate as shown below. TSource will be the type of data that comes in and TResult will be the type the user chooses (shape of data) as returned from the selector delegate. 1:  2: static IEnumerable<TResult> Select<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, TResult> selector) { 3: foreach (var x in source) { 4: yield return selector(x); 5: } 6: } We see the new changes to our app. On line 15, we use lambda expression to specify the shape of the data. In this case the shape will be of type EmployeeFormatted. 1:  2: public class Program 3: { 4: [STAThread] 5: static void Main(string[] args) 6: { 7: var employees = new List<Employee> { 8: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 9: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 10: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 11: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 12: }; 13:  14: var filteredEmployees = Where(employees, emp => emp.ID % 2 == 0); 15: var formattedEmployees = Select(filteredEmployees, (emp) => 16: new EmployeeFormatted { 17: ID = emp.ID, 18: FullName = emp.LastName + ", " + emp.FirstName 19: }); 20:  21: foreach (EmployeeFormatted emp in formattedEmployees) { 22: Console.WriteLine("ID {0} Full_Name {1}", 23: emp.ID, emp.FullName); 24: } 25: Console.ReadLine(); 26: } 27: 28: static IEnumerable<T> Where<T>(IEnumerable<T> source, Func<T, bool> filter) { 29: foreach (var x in source) { 30: if (filter(x)) { 31: yield return x; 32: } 33: } 34: } 35: 36: static IEnumerable<TResult> Select<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, TResult> selector) { 37: foreach (var x in source) { 38: yield return selector(x); 39: } 40: } 41: } The code outputs the same result as before. On line 14 we filter our data and on line 15 we project our data. What if we wanted to be more expressive and concise? We could combine both line 14 and 15 into one line as shown below. Assuming you had to perform several operations like this on our collection, you would end up with some very unreadable code! 1: var formattedEmployees = Select(Where(employees, emp => emp.ID % 2 == 0), (emp) => 2: new EmployeeFormatted { 3: ID = emp.ID, 4: FullName = emp.LastName + ", " + emp.FirstName 5: }); A cleaner way to write this would be to give the appearance that the Select and Where methods were part of the IEnumerable<T>. This is exactly what extension methods give us. Extension methods have to be defined in a static class. Let us make the Select and Where extension methods on IEnumerable<T> 1: public static class MyExtensionMethods { 2: static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> filter) { 3: foreach (var x in source) { 4: if (filter(x)) { 5: yield return x; 6: } 7: } 8: } 9: 10: static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) { 11: foreach (var x in source) { 12: yield return selector(x); 13: } 14: } 15: } The creation of the extension method makes the syntax much cleaner as shown below. We can write as many extension methods as we want and keep on chaining them using this technique. 1: var formattedEmployees = employees 2: .Where(emp => emp.ID % 2 == 0) 3: .Select (emp => new EmployeeFormatted { ID = emp.ID, FullName = emp.LastName + ", " + emp.FirstName }); Making these changes and running our code produces the same result. 1: using System; 2: using System.Collections.Generic; 3:  4: public class Program 5: { 6: [STAThread] 7: static void Main(string[] args) 8: { 9: var employees = new List<Employee> { 10: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 11: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 12: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 13: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 14: }; 15:  16: var formattedEmployees = employees 17: .Where(emp => emp.ID % 2 == 0) 18: .Select (emp => 19: new EmployeeFormatted { 20: ID = emp.ID, 21: FullName = emp.LastName + ", " + emp.FirstName 22: } 23: ); 24:  25: foreach (EmployeeFormatted emp in formattedEmployees) { 26: Console.WriteLine("ID {0} Full_Name {1}", 27: emp.ID, emp.FullName); 28: } 29: Console.ReadLine(); 30: } 31: } 32:  33: public static class MyExtensionMethods { 34: static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> filter) { 35: foreach (var x in source) { 36: if (filter(x)) { 37: yield return x; 38: } 39: } 40: } 41: 42: static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) { 43: foreach (var x in source) { 44: yield return selector(x); 45: } 46: } 47: } 48:  49: public class Employee { 50: public int ID { get; set;} 51: public string FirstName { get; set;} 52: public string LastName {get; set;} 53: public string Country { get; set; } 54: } 55:  56: public class EmployeeFormatted { 57: public int ID { get; set; } 58: public string FullName {get; set;} 59: } Let’s change our code to return a collection of anonymous types and get rid of the EmployeeFormatted type. We see that the code produces the same output. 1: using System; 2: using System.Collections.Generic; 3:  4: public class Program 5: { 6: [STAThread] 7: static void Main(string[] args) 8: { 9: var employees = new List<Employee> { 10: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 11: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 12: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 13: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 14: }; 15:  16: var formattedEmployees = employees 17: .Where(emp => emp.ID % 2 == 0) 18: .Select (emp => 19: new { 20: ID = emp.ID, 21: FullName = emp.LastName + ", " + emp.FirstName 22: } 23: ); 24:  25: foreach (var emp in formattedEmployees) { 26: Console.WriteLine("ID {0} Full_Name {1}", 27: emp.ID, emp.FullName); 28: } 29: Console.ReadLine(); 30: } 31: } 32:  33: public static class MyExtensionMethods { 34: public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func<T, bool> filter) { 35: foreach (var x in source) { 36: if (filter(x)) { 37: yield return x; 38: } 39: } 40: } 41: 42: public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector) { 43: foreach (var x in source) { 44: yield return selector(x); 45: } 46: } 47: } 48:  49: public class Employee { 50: public int ID { get; set;} 51: public string FirstName { get; set;} 52: public string LastName {get; set;} 53: public string Country { get; set; } 54: } To be more expressive, C# allows us to write our extension method calls as a query expression. Line 16 can be rewritten a query expression like so: 1: var formattedEmployees = from emp in employees 2: where emp.ID % 2 == 0 3: select new { 4: ID = emp.ID, 5: FullName = emp.LastName + ", " + emp.FirstName 6: }; When the compiler encounters an expression like the above, it simply rewrites it as calls to our extension methods.  So far we have been using our extension methods. The System.Linq namespace contains several extension methods for objects that implement the IEnumerable<T>. You can see a listing of these methods in the Enumerable class in the System.Linq namespace. Let’s get rid of our extension methods (which I purposefully wrote to be of the same signature as the ones in the Enumerable class) and use the ones provided in the Enumerable class. Our final code is shown below: 1: using System; 2: using System.Collections.Generic; 3: using System.Linq; //Added 4:  5: public class Program 6: { 7: [STAThread] 8: static void Main(string[] args) 9: { 10: var employees = new List<Employee> { 11: new Employee { ID = 1, FirstName = "John", LastName = "Wright", Country = "USA" }, 12: new Employee { ID = 2, FirstName = "Jim", LastName = "Ashlock", Country = "UK" }, 13: new Employee { ID = 3, FirstName = "Jane", LastName = "Jackson", Country = "CHE" }, 14: new Employee { ID = 4, FirstName = "Jill", LastName = "Anderson", Country = "AUS" } 15: }; 16:  17: var formattedEmployees = from emp in employees 18: where emp.ID % 2 == 0 19: select new { 20: ID = emp.ID, 21: FullName = emp.LastName + ", " + emp.FirstName 22: }; 23:  24: foreach (var emp in formattedEmployees) { 25: Console.WriteLine("ID {0} Full_Name {1}", 26: emp.ID, emp.FullName); 27: } 28: Console.ReadLine(); 29: } 30: } 31:  32: public class Employee { 33: public int ID { get; set;} 34: public string FirstName { get; set;} 35: public string LastName {get; set;} 36: public string Country { get; set; } 37: } 38:  39: public class EmployeeFormatted { 40: public int ID { get; set; } 41: public string FullName {get; set;} 42: } This post has shown you a basic overview of LINQ to Objects work by showning you how an expression is converted to a sequence of calls to extension methods when working directly with objects. It gets more interesting when working with LINQ to SQL where an expression tree is constructed – an in memory data representation of the expression. The C# compiler compiles these expressions into code that builds an expression tree at runtime. The provider can then traverse the expression tree and generate the appropriate SQL query. You can read more about expression trees in this MSDN article.

    Read the article

  • Keypress detection wont work after seemingly unrelated code change

    - by LukeZaz
    I'm trying to have the Enter key cause a new 'map' to generate for my game, but for whatever reason after implementing full-screen in it the input check won't work anymore. I tried removing the new code and only pressing one key at a time, but it still won't work. Here's the check code and the method it uses, along with the newMap method: public class Game1 : Microsoft.Xna.Framework.Game { // ... protected override void Update(GameTime gameTime) { // ... // Check if Enter was pressed - if so, generate a new map if (CheckInput(Keys.Enter, 1)) { blocks = newMap(map, blocks, console); } // ... } // Method: Checks if a key is/was pressed public bool CheckInput(Keys key, int checkType) { // Get current keyboard state KeyboardState newState = Keyboard.GetState(); bool retType = false; // Return type if (checkType == 0) { // Check Type: Is key currently down? if (newState.IsKeyDown(key)) { retType = true; } else { retType = false; } } else if (checkType == 1) { // Check Type: Was the key pressed? if (newState.IsKeyDown(key)) { if (!oldState.IsKeyDown(key)) { // Key was just pressed retType = true; } else { // Key was already pressed, return false retType = false; } } } // Save keyboard state oldState = newState; // Return result if (retType == true) { return true; } else { return false; } } // Method: Generate a new map public List<Block> newMap(Map map, List<Block> blockList, Console console) { // Create new map block coordinates List<Vector2> positions = new List<Vector2>(); positions = map.generateMap(console); // Clear list and reallocate memory previously used up by it blockList.Clear(); blockList.TrimExcess(); // Add new blocks to the list using positions created by generateMap() foreach (Vector2 pos in positions) { blockList.Add(new Block() { Position = pos, Texture = dirtTex }); } // Return modified list return blockList; } // ... } and the generateMap code: // Generate a list of Vector2 positions for blocks public List<Vector2> generateMap(Console console, int method = 0) { ScreenTileWidth = gDevice.Viewport.Width / 16; ScreenTileHeight = gDevice.Viewport.Height / 16; maxHeight = gDevice.Viewport.Height; List<Vector2> blockLocations = new List<Vector2>(); if (useScreenSize == true) { Width = ScreenTileWidth; Height = ScreenTileHeight; } else { maxHeight = Height; } int startHeight = -500; // For debugging purposes, the startHeight is set to an // hopefully-unreachable value - if it returns this, something is wrong // Methods of land generation /// <summary> /// Third version land generation /// Generates a base land height as the second version does /// but also generates a 'max change' value which determines how much /// the land can raise or lower by which it now does by a random amount /// during generation /// </summary> if (method == 0) { // Get the land height startHeight = rnd.Next(1, maxHeight); int maxChange = rnd.Next(1, 5); // Amount ground will raise/lower by int curHeight = startHeight; for (int w = 0; w < Width; w++) { // Run a chance to lower/raise ground level int changeBy = rnd.Next(1, maxChange); int doChange = rnd.Next(0, 3); if (doChange == 1 && !(curHeight <= (1 + maxChange))) { curHeight = curHeight - changeBy; } else if (doChange == 2 && !(curHeight >= (29 - maxChange))) { curHeight = curHeight + changeBy; } for (int h = curHeight; h < Height; h++) { // Location variables float x = w * 16; float y = h * 16; blockLocations.Add(new Vector2(x, y)); } } console.newMsg("[INFO] Cur, height change maximum: " + maxChange.ToString()); } /// <summary> /// Second version land generator /// Generates a solid mass of land starting at a random height /// derived from either screen height or provided height value /// </summary> else if (method == 1) { // Get the land height startHeight = rnd.Next(0, 30); for (int w = 0; w < Width; w++) { for (int h = startHeight; h < ScreenTileHeight; h++) { // Location variables float x = w * 16; float y = h * 16; // Add a tile at set location blockLocations.Add(new Vector2(x, y)); } } } /// <summary> /// First version land generator /// Generates land completely randomly either across screen or /// in a box set by Width and Height values /// </summary> else { // For each tile in the map... for (int w = 0; w < Width; w++) { for (int h = 0; h < Height; h++) { // Location variables float x = w * 16; float y = h * 16; // ...decide whether or not to place a tile... if (rnd.Next(0, 2) == 1) { // ...and if so, add a tile at that location. blockLocations.Add(new Vector2(x, y)); } } } } console.newMsg("[INFO] Cur, base height: " + startHeight.ToString()); return blockLocations; } I never touched any of the above code for this when it broke - changing keys won't seem to fix it. Despite this, I have camera movement set inside another Game1 method that uses WASD and works perfectly. All I did was add a few lines of code here: private int BackBufferWidth = 1280; // Added these variables private int BackBufferHeight = 800; public Game1() { graphics = new GraphicsDeviceManager(this); graphics.PreferredBackBufferWidth = BackBufferWidth; // and this graphics.PreferredBackBufferHeight = BackBufferHeight; // this Content.RootDirectory = "Content"; this.graphics.IsFullScreen = true; // and this } When I try adding a console line to be printed in the event the key is pressed, it seems that the If is never even triggered despite the correct key being pressed.

    Read the article

< Previous Page | 19 20 21 22 23 24 25 26 27 28 29 30  | Next Page >