Search Results

Search found 54311 results on 2173 pages for 'right click menu'.

Page 392/2173 | < Previous Page | 388 389 390 391 392 393 394 395 396 397 398 399  | Next Page >

  • USB: Missing Operating System - MAC

    - by Viraj Rao
    Have installed Ubuntu 11.10 on USB using Live CD. Followed the steps as provided in below link https://help.ubuntu.com/community/MactelSupportTeam/AppleIntelInstallation After installation is complete in Refit menu, when i click on Linux icon I receive "Missing Operating System" message. I followed the steps provided in the below link from this forum, but am still receiving the same message. Unable to boot: Missing Operating system Any assistance is highly appreciated.

    Read the article

  • Slides and Pictures from PowerShell Saturday Columbus 2012

    - by Brian Jackett
    On March 10th, 2012 the first ever PowerShell Saturday conference took place in Columbus, OH and I couldn’t be happier with the outcome.  We had 100 attendees from 10 different states (the biggest surprise to me) come to see 6 speakers present on a variety of PowerShell topics: introduction, WMI, SharePoint, Active Directory, Exchange, 3rd party products and more.      A big thank you also goes out to a number of people. Planning committee Wes Stahler, lead organizer of PowerShell Saturday Columbus, president of Central Ohio PowerShell User Group Ed “Microsoft Scripting Guy” Wilson Teresa “The Scripting Wife” Wilson Ashley McGlone Brian T. Jackett (myself) Speakers Ed Wilson Ashley McGlone James Brundage Trevor Sullivon Daniel Cruz Volunteer Lisa Gardner, fellow Microsoft PFE volunteered her time on a Saturday to assist with smooth operation of the day Facility Coordination Debbie Carrier, facilities coordinator for the Columbus Microsoft Office and helped us out greatly with the venue   Slides and Script Samples    I presented my session on “PowerShell for the SharePoint 2010 Developer”.  Below you can download the slides and script samples.   Photos    I wasn’t able to take took many pictures (only 3) as I was busy doing my presentation, answering questions, and taking care of random items throughout the day.   Pictures on Facebook    click here Pictures on SkyDrive (higher res) PowerShell Saturday Columbus Mar '12 VIEW SLIDE SHOW DOWNLOAD ALL   Conclusion    I’m very happy that this first ever PowerShell Saturday was a success.  My fellow PFE and speaker Ashley McGlone also has a short write-up on his blog about the event (click here).  I have heard rumors that there are other cities starting to plan their own local events.  When I hear more details I’ll spread the word here and on Twitter.         -Frog Out

    Read the article

  • SQL SERVER – Technical Reference Guides for Designing Mission-Critical Solutions – A Must Read

    - by pinaldave
    Yesterday I was reading architecture reference material helping my friend who was looking for material in this respect. While working together we were searching twitter, facebook and search engines to find relevant material.While searching online we end up on very interactive reference point. Once I send the same to him, he replied he may not need anything more after referencing this material. The best part of this article was it gives access to various aspect of the technology of the image map. Here is the abstract of the original article from the site: The Technical Reference Guides for Designing Mission-Critical Solutions provide planning and architecture guidance for various mission-critical workloads deployed by users. These guides reflect the knowledge gained by Microsoft while working with customers on mission-critical deployments. Each guide provides not only the key technical concepts and information helpful for design, but also “lessons learned,” best practices, and references to customer case studies. Once you click on any of the desired topic, you will see further detailed image map of the selected topic. Personally once I ended up on this site, I was there for more than 2 hours clicking through various links. Click on image to see larger image Read more here: Technical Reference Guides for Designing Mission-Critical Solutions Reference: Pinal Dave (http://blog.sqlauthority.com) Filed under: PostADay, SQL, SQL Authority, SQL Query, SQL Server, SQL Tips and Tricks, SQL White Papers, T SQL, Technology

    Read the article

  • How do I remap the buttons on an Apple Mighty Mouse?

    - by Jonathan.
    I just started using Ubuntu instead of Windows, my initial reaction was "omg this is awful", but after a while it grew on me, and I don't plan on going back to Windows. However I have an Apple Mighty Mouse which I was given today, and the buttons on it don't quite work. Left and right click work, so does scrolling right and down, also the back button works. However the forward button goes back, and the scroll up button sometimes scrolls down, scrolling left just doesn't work. Is there a way to fix this? Like remap the buttons? I'm not entirely sure how the driver thing works in Ubuntu?

    Read the article

  • The Moon Illusion Explained [Video]

    - by Jason Fitzpatrick
    When the moon is on the horizon it looks radically larger than it does up in the sky; check out this video to see the science behind the illusion. [via Geeks Are Sexy] What Is the Purpose of the “Do Not Cover This Hole” Hole on Hard Drives? How To Log Into The Desktop, Add a Start Menu, and Disable Hot Corners in Windows 8 HTG Explains: Why You Shouldn’t Use a Task Killer On Android

    Read the article

  • What are the basics (best practices, etc) of writing a good Flash application?

    - by donut
    I've been tasked with writing a Flash application for facilitating a Fantasy Football draft pick. Normally, my choice would be to write this application in JavaScript. Unfortunately, it will require the use of sockets and since we don't have enough experience with Web Socket JS to be sure it would work in this situation I need to learn Flash. Currently, I'm most proficient in JavaScript/HTML/CSS/PHP/MySQL and have never really used Flash in a meaningful way. As best as I can I want to start this project off "the right way". So, what are good to know best practices and/or references/resources that will teach my the right way of doing things in Flash?

    Read the article

  • Manager Self Service at your Fingertips

    - by Elaine Clement
    Last week we released new and improved Manager Self Service capabilities in PeopleSoft HCM 9.1. We delivered a new Manager Dashboard, streamlined many Manager Self Service transactions, provided new Pivot Grid capabilities, and implemented one-click Related Actions accessible from multiple places – all with the goal of improving every Manager’s self service experience. Manager Dashboard These new capabilities have the potential to significantly impact an organization’s bottom line, and here is why. Increased Efficiency The Manager Dashboard provides a ‘one-stop shop’ for your Managers with all of the key data they need consolidated into a single view. Alerts notifying managers of important tasks are immediately viewable and actionable. Administrators can configure the dashboard to include the most important pagelets needed for their organization, and Managers can personalize it to fit within their personal way of conducting their tasks. The Related Actions feature further improves the ease with which Managers get their work done by providing one-click access to Manager Self Service transactions.  Increased Job Satisfaction The streamlined Manager transactions, related actions, and the new Manager Dashboard provide an enhanced user experience. Managers are able to quickly get in, get the information they need, complete their transactions, and get out. Managers can spend their time focusing on getting the business results they need instead of their day to day HR tasks. Enhanced Decision Support Administrators can ensure the information and analytics they want their Managers to use are available from the Manager Dashboard, establishing best business practices. Additional pivot grids relevant to your own organization can be added to the Manager Dashboard. With this easy access to the relevant information in an easily understood format, Managers can make the right business decisions needed to improve their team and their team’s productivity. For more details on the Manager Dashboard and some of the other newly posted features, such as a new Talent Summary, check out this video and others: Oracle PeopleSoft Webcasts

    Read the article

  • Getting Ubuntu on Bootloader after formatting

    - by Muhammad Badi
    I've been running Windows XP on a desktop machine (C:/) and installed Ubuntu 12.04 (D:/) and Windows bootloader was able to recognize Ubuntu when I turn on the computer. Months later, I've formatted drive C:/, removed XP, and then installed Windows 7 but sadly, Ubuntu is not showing in the boot menu as it used to be presented: Windows 7 Ubuntu How to get it back on boot list? NOTE: Please note that installing Ubuntu was done from inside Windows XP with wubi.exe

    Read the article

  • Settings xorg.conf to be used with VESA driver?

    - by Fernando Costa
    I have an brand new installation of Ubuntu 9.10 (karmic version) where everything is fine except the video resolution. In Ubuntu 9.10, the file xorg.conf is empty by default. I'm using an onboard video card, and Ubuntu can not find the right resolution for me. It always uses 800x600, but I need at least 1024x768. Also, my monitor is listed as Unknown Type. Ubuntu did find the right resolution when I changed the monitor to a Samsung monitor. By the way what are the generic settings to put inside xorg.conf? What is the settings for Refresh Rate, for example, I got a resolution of 1280x800, but the Refresh Rate generally between 60 ~ 80 htz is ZERO on my resolution.. In 1024 resolution my Refresh Rate is 75 htz.. What is going on with my resolution and how to modify the Refresh Rate?? Many Thanks!

    Read the article

  • Java Spotlight Episode 112: Joonas Lehiten on @Vaadin

    - by Roger Brinkley
    Interview with Joonas Lehtinen on Vaadin. Right-click or Control-click to download this MP3 file. You can also subscribe to the Java Spotlight Podcast Feed to get the latest podcast automatically. If you use iTunes you can open iTunes and subscribe with this link:  Java Spotlight Podcast in iTunes. Show Notes News Java Smart Metering video JavaFX for Tablets and Mobile survey on FXExperience Muliple JSR Migrating to the Latest JCP Version A number of JEPs added to  JDK 8 features and JDK 8 Milestones Adopt-a-JSR for Java EE 7 Events Dec 14-15, IndicThreads, Pune, India Dec 20, 9:30am JCP Spec Lead Call December on Developing a TCK Jan 15-16, JCP EC Face to Face Meeting, West Coast USA Feature InterviewJoonas Lehtinen started the development of Vaadin, a Java-based open source framework for building business-oriented Rich Internet Applications. He has been developing applications for the web since 1995 with a strong focus on Ajax and Java. He is also the founder and CEO of the company behind the Vaadin framework. What’s Cool Hinkmond Wong’s work with RasberryPI and Java Embedded GPIO Collaborative Whiteboard using WebSocket

    Read the article

  • Interesting conversation about the nature of info-wars

    - by Malcolm Anderson
    Over at Schlock Mercenary, Howard Taylor has started a facinating conversation on the nature of Info-Wars. As Howard puts it:   Somebody (I forget who) tweeted that the Wikileaks fight right now is the first infowar in history. I disagree. I think we've fought numerous infowars in the last fifteen years. And that's really what I want to see discussed in the comments. We can argue right and wrong until the eCows come 127.0.0.1 but nobody is going to walk away convinced. I want to see a list of information-age conflicts that you feel qualify as "infowar." Me, I think the RIAA vs file-sharing qualifies. My buddy Rodney suggested RBLs vs Spammers (the spammers won that one.) Somebody pointed out that the Secret Service raid on Steve Jackson Games back in the 80's might qualify.

    Read the article

  • How to optimize collision detection

    - by Niklas
    I am developing a 2D Java Game with LibGDX. This is what it kinda looks like (simplified): The big black circle is the player, which you can move by tilting the smartphone. The red circles and blue rectangles are enemies, which will move from the right of the screen to the left. The player has to avoid crashing into them. Right now I am checking in the Game Loop every enemy against the player, whether they collide or not. This seems kinda inefficient to me, but I don't know how to improve it. I have tried the Quadtree approach, but it did not really work. The player could easily glitch through enemies and the collision was not detected. Unfortunately, I have destroyed the Quadtree implementation. I used this [tutorial/blog] as my Quadtree implementation(http://gamedevelopment.tutsplus.com/tutorials/quick-tip-use-quadtrees-to-detect-likely-collisions-in-2d-space--gamedev-374).

    Read the article

  • Determine percentage of screen covered by an object without using frustum culling

    - by Meltac
    On the CPU-side of an 3D first-person / ego perspective game I need to check whether what the players currently sees on screen is the inside of a box object defined by world space coordinates (the player might be outside of that box but on screen sees only/mostly the inside of the box, or vice-versa, looks from within the box to the outside). The "casual" way of performing such a check would incorporate frustum culling but such an approach would be hard to achieve with my given set of engine parameters which I'd like to avoid if there is a simpler way. What I actually have at the point where I would like to do the check (high-level script on CPU, not GPU side): Camera world position Camera direction Camera FOV Two Box corner world coordinates (left-bottom-front, right-top-back) What I do not have right away: View frustrum definition (near/far plane or say 6 planes defining frustum) Any specific pixel information (uv, view space position, depth or the like) What I would like to calculate: Percentage of screen "covered" by box. Any hints on how to perform such calculation?

    Read the article

  • How does a trackball reduce pain caused by RSI? [closed]

    - by gunbuster363
    I developed RSI (Repetitive Strain Injury) in my index fingers due excessive mouse clicking. I might consider a trackball as many people suggested. But how does trackball help? I can see it get 2 buttons and a ball which require some fingers to operate on. Will I RSI while I click on the buttons with other healthy fingers? Logitech TrackMan Wheel: I highly doubt this trackball, I assume we are still using the index and middle finger for clicking. Logitech Marble Mouse: I think we will use the thumb to click the left button, will I develop RSI on my thumb? And the right button, which finger should I use? If you know other trackball which might help, please tell me which is the design that help to avoid the stress.

    Read the article

  • Running rebaseall on Cygwin

    - by Erik Vold
    I tried building node.js on cygwin and that caused errors, so someone in #node.js on freenode told me to run rebaseall on cygwin to clean it up. So I tried that and I got the following message: $ rebaseall rebaseall: only ash or dash processes are allowed during rebasing Exit all Cygwin processes and stop all Cygwin services. Execute ash (or dash) from Start/Run... or a cmd or command window. Execute '/bin/rebaseall' from ash (or dash). So I closed cygwin, went to Start/Run and tried ash and dash but got the following alert: Windows cannot find 'ash'. Make sure you typed the name correctly, and then try again. To search for a file, click the Start button, and then click Search. So what am I supposed to do??

    Read the article

  • The future continues to be brighter than ever for JD Edwards as the first ERP suite to run on Apple iPad.

    - by mseika
    Announcing JD Edwards Tools JD EdwardsLatest and Greatest Live Demo and Webcast of the New Applications User Interface & Tools on Apple iPad Tuesday December 6, 2011 at 8:00 a.m. Pacific Click here to register Oracle’s JD Edwards Development Team just completed an exciting new EnterpriseOne User Interface and a massive number of feature innovations for users and system administrators. We are looking forward to demonstrating the new User Interface and Tools. We have a panel of experts lined up just for you and we will be sure to answer all your questions. Lyle Ekdahl – Oracle Group Vice President Gary Grieshaber – Oracle Strategy Senior Director Brian Stanz – Oracle Development Senior Director The future continues to be brighter than ever for JD Edwards as the first ERP suite to run on Apple iPad. Please join us for this important webcast and see why we are so excited about these cool tools that make your work more mobile and efficient. Click here to register for the live webcast on Tuesday, December 6th, 2011 at 8:00 a.m. Pacific time! Copyright © 2011, Oracle Corporation and/or its affiliates. All rights reserved. Contact Us | Legal Notices and Terms of Use | Privacy Statement

    Read the article

  • Shortcut key to forward email to fixed email address in Postbox

    - by Jos v.d. Voort v.d. Kleij
    As an avid user of todo apps (currently Asana) is very much miss a way to easily forward an email from Postbox to my GTD app. Currently the workflow is: Click cmd/L to open the forward email window Type [email protected] in the To: address field Click the send button in the forward email window What I would like to have is an automator or applescript that does that for me. Ex: Highligh/select the mail I wish to convert to a task in Asana and the type a shortcut like ctrl/cmd/L to forward the mail to Asana. As most todo apps have custom email addresses you can use to convert an email into a task, the only thing that needs to be changed is the email address in the script. For Asana this would not be necessary because the email address for converting an email into a taks is the same for all Asana users.

    Read the article

  • SQL SERVER – Template Browser – A Very Important and Useful Feature of SSMS

    - by pinaldave
    Let me start today’s blog post with a direction question. How many of you have ever used Template Browser? Template Browser is a very important and useful feature of SQL Server Management Studio (SSMS). Every time when I am talking about SQL Server there is always someone comes up with the question, why there is no step by step procedure included in SSMS for features. Honestly every time I get this question, the question I ask back is How many of you have ever used Template Browser? I think the answer to this question is most of the time either no or we have not heard of the feature. One of the people asked me back – have you ever written about it on your blog? I have not yet written about it. Basically there is nothing much to write about it. It is pretty straight forward feature, like any other feature and it is indeed difficult to elaborate. However, I will try to give a quick introduction to this feature. Templates are like a quick cheat sheet or quick reference. Templates are available to create objects like databases, tables, views, indexes, stored procedures, triggers, statistics, and functions. Templates are also available for Analysis Services as well. The template scripts contain parameters to help you customize the code. You can Replace Template Parameters dialog box to insert values into the script. Additionally users can create new custom templates as well with folder structure. To open a template from Template Explorer Go to View menu >> Template Explorer or type CTRL+ALT+L. You will find a list of categories click on any category and expand the folder structure. For our sample example let us expand Index Folder. In this folder you will notice the various T-SQL Scripts. These scripts can be opened by double click or can be dragged to editor area and modified as needed. Sample template is now available in the query editor area with all the necessary parameter place folder. You can replace the same parameter by typing either CTRL+SHIFT+M or by going to Query Menu >> Specify Values for Template Parameters. In this screen it will show  Specify Values for Template Parameters dialog box, accept the value or replace it with a new value. This will now get your script ready to go. Check it one more time and change the script to fit your requirement. I personally use template explorer for two things. First one is obviously for templates but the hidden one and an important one is for learning new features and T-SQL commands. There is so much to learn and so little time. Reference: Pinal Dave (http://blog.sqlauthority.com) Filed under: PostADay, SQL, SQL Authority, SQL Query, SQL Server, SQL Server Management Studio, SQL Tips and Tricks, T SQL, Technology

    Read the article

  • add collision detection to sprite?

    - by xBroak
    bassically im trying to add collision detection to the sprite below, using the following: self.rect = bounds_rect collide = pygame.sprite.spritecollide(self, wall_list, False) if collide: # yes print("collide") However it seems that when the collide is triggered it continuously prints 'collide' over and over when instead i want them to simply not be able to walk through the object, any help? def update(self, time_passed): """ Update the creep. time_passed: The time passed (in ms) since the previous update. """ if self.state == Creep.ALIVE: # Maybe it's time to change the direction ? # self._change_direction(time_passed) # Make the creep point in the correct direction. # Since our direction vector is in screen coordinates # (i.e. right bottom is 1, 1), and rotate() rotates # counter-clockwise, the angle must be inverted to # work correctly. # self.image = pygame.transform.rotate( self.base_image, -self.direction.angle) # Compute and apply the displacement to the position # vector. The displacement is a vector, having the angle # of self.direction (which is normalized to not affect # the magnitude of the displacement) # displacement = vec2d( self.direction.x * self.speed * time_passed, self.direction.y * self.speed * time_passed) self.pos += displacement # When the image is rotated, its size is changed. # We must take the size into account for detecting # collisions with the walls. # self.image_w, self.image_h = self.image.get_size() global bounds_rect bounds_rect = self.field.inflate( -self.image_w, -self.image_h) if self.pos.x < bounds_rect.left: self.pos.x = bounds_rect.left self.direction.x *= -1 elif self.pos.x > bounds_rect.right: self.pos.x = bounds_rect.right self.direction.x *= -1 elif self.pos.y < bounds_rect.top: self.pos.y = bounds_rect.top self.direction.y *= -1 elif self.pos.y > bounds_rect.bottom: self.pos.y = bounds_rect.bottom self.direction.y *= -1 self.rect = bounds_rect collide = pygame.sprite.spritecollide(self, wall_list, False) if collide: # yes print("collide") elif self.state == Creep.EXPLODING: if self.explode_animation.active: self.explode_animation.update(time_passed) else: self.state = Creep.DEAD self.kill() elif self.state == Creep.DEAD: pass #------------------ PRIVATE PARTS ------------------# # States the creep can be in. # # ALIVE: The creep is roaming around the screen # EXPLODING: # The creep is now exploding, just a moment before dying. # DEAD: The creep is dead and inactive # (ALIVE, EXPLODING, DEAD) = range(3) _counter = 0 def _change_direction(self, time_passed): """ Turn by 45 degrees in a random direction once per 0.4 to 0.5 seconds. """ self._counter += time_passed if self._counter > randint(400, 500): self.direction.rotate(45 * randint(-1, 1)) self._counter = 0 def _point_is_inside(self, point): """ Is the point (given as a vec2d) inside our creep's body? """ img_point = point - vec2d( int(self.pos.x - self.image_w / 2), int(self.pos.y - self.image_h / 2)) try: pix = self.image.get_at(img_point) return pix[3] > 0 except IndexError: return False def _decrease_health(self, n): """ Decrease my health by n (or to 0, if it's currently less than n) """ self.health = max(0, self.health - n) if self.health == 0: self._explode() def _explode(self): """ Starts the explosion animation that ends the Creep's life. """ self.state = Creep.EXPLODING pos = ( self.pos.x - self.explosion_images[0].get_width() / 2, self.pos.y - self.explosion_images[0].get_height() / 2) self.explode_animation = SimpleAnimation( self.screen, pos, self.explosion_images, 100, 300) global remainingCreeps remainingCreeps-=1 if remainingCreeps == 0: print("all dead")

    Read the article

  • I'm learning html and I'm confused as to how href's work. [migrated]

    - by Robolisk
    Okay so i'm learning html right now and soon css. In my html coding I have a section like this for navigation: <div id="header"> <h1>Guild Wars 2 Fanbase</h1> <ol id="navigation"> <li><a href="/">Home</a></li> <li><a href="/facts">Facts</a></li> <li><a href="/gallery">Gallery</a></li> <li><a href="/code">Coding</a> <ul><li><a href="/code/line">Lines</a></li> <li><a href="/code/comment">Comment Lines</a></li> </ul> </li> </ol></div> Now when I open up this .html file this is all layed out the way I want it too look (the mark up that is). My question is this, when I click on a link on this site (this site being this code) I get an a error saying this webpage is not found, but of course. But how do I create it so I can have the web pages working together? I'm not sure how to word it correctly. Like, do I create another .html file in the same directory so somehow when I click the link it reads from the second .html file? If you not sure what I'm asking, just let me know and I'll try to be more specific. Thank you for your help (: excuse my mistakes in grammar, not the worlds best in English, trying my best (:

    Read the article

  • CRM On Demand Performance Tips - Live Web Session on April 20, 2010

    - by Cheryl
    The CRM On Demand Customer Care specialists have another live Web session coming up - this one is about performance - issues, tips, and considerations. This is a part of their Web series, where they pick topics that they hear a lot of questions or concerns about from customers and run live (and free) 1-hour Web sessions about them. Here are the details for this event: Event Title: CRM On Demand Performance Brandon (Hank) Henrie will present some of the top CRM On Demand performance questions and issues that customers raise and some tips and tricks that you can use to avoid them. He will point out good resources that can help and tips for logging performance-related service requests, when all else fails. Date: April 20, 2010 Time: 10:00 am (UTC-07:00 Arizona) How to join: 1. Dial 1-866-682-4770 to access the conference line. 2. Enter the conference code - 6241996 and press # 3. Follow the instructions to record your name and press # 4. Enter the meeting passcode - 1212 and press # 5. Follow the instructions below to join the web portion of the conference. The Web Conference Go to the Oracle Web Conference site: https://strtc.oracle.com Prior to the event: Click the New User button then run the New User Test. (If you have difficulties installing the web conference software try downloading the conference software from the test status window and installing manually.) To join the event: 1. Enter the conference information In the Join Conference box: Conference ID: 6566623 Your Name 2. Click the Join Conference button. Watch for announcements of future sessions on different topics. And, let us know what you think!

    Read the article

  • Windows Live Mail doesn't respond to clicking Allow Sender

    - by Karel
    This is a problem that I experience for a couple of years now.. I'm having the latest version of Windows Live Mail. The overall behavior works just fine, but when I want to click 'Allow Sender' in the yellow bar above my e-mail, the text button does nothing. My mouse pointer turns into a finger hand, but the click event does nothing.. Sometimes with other e-mails, the button works and the yellow bar dissappears.. I have also experienced this in previous versions of Windows Live Mail.. Does anybody know what it could be..

    Read the article

  • Why does this script not open parallel gnome-terminals on a server?

    - by broiyan
    Why am I not able to have parallel gnome-terminals on my server while I can on my client. Here is a test that illustrates the problem. #!/bin/bash # this is the parent script gnome-terminal --command "./left.sh" sleep 10 gnome-terminal --command "./right.sh" #!/bin/bash echo "this is the left script" read -p "press any key to close this terminal" key #!/bin/bash echo "this is the right script" read -p "press any key to close this terminal" key When I run this on a regular ubuntu desktop (maverick) I see two terminals after 10 seconds. When I run this on a maverick server at a server farm, the second window does not appear until after I close the first one and wait 10 seconds. I am using tightvncserver to view the server desktop. (I could have simplified a bit more. The 10 second sleep is extraneous to the problem. In my real world application I need the first terminal to do some real work before starting the second. The problem probably still exists even if there is no sleep.)

    Read the article

  • Silverlight 4 Twitter Client &ndash; Part 6

    - by Max
    In this post, we are going to look into implementing lists into our twitter application and also about enhancing the data grid to display the status messages in a pleasing way with the profile images. Twitter lists are really cool feature that they recently added, I love them and I’ve quite a few lists setup one for DOTNET gurus, SQL Server gurus and one for a few celebrities. You can follow them here. Now let us move onto our tutorial. 1) Lists can be subscribed to in two ways, one can be user’s own lists, which he has created and another one is the lists that the user is following. Like for example, I’ve created 3 lists myself and I am following 1 other lists created by another user. Both of them cannot be fetched in the same api call, its a two step process. 2) In the TwitterCredentialsSubmit method we’ve in Home.xaml.cs, let us do the first api call to get the lists that the user has created. For this the call has to be made to https://twitter.com/<TwitterUsername>/lists.xml. The API reference is available here. myService1.AllowReadStreamBuffering = true; myService1.UseDefaultCredentials = false; myService1.Credentials = new NetworkCredential(GlobalVariable.getUserName(), GlobalVariable.getPassword()); myService1.DownloadStringCompleted += new DownloadStringCompletedEventHandler(ListsRequestCompleted); myService1.DownloadStringAsync(new Uri("https://twitter.com/" + GlobalVariable.getUserName() + "/lists.xml")); 3) Now let us look at implementing the event handler – ListRequestCompleted for this. public void ListsRequestCompleted(object sender, System.Net.DownloadStringCompletedEventArgs e) { if (e.Error != null) { StatusMessage.Text = "This application must be installed first."; parseXML(""); } else { //MessageBox.Show(e.Result.ToString()); parseXMLLists(e.Result.ToString()); } } 4) Now let us look at the parseXMLLists in detail xdoc = XDocument.Parse(text); var answer = (from status in xdoc.Descendants("list") select status.Element("name").Value); foreach (var p in answer) { Border bord = new Border(); bord.CornerRadius = new CornerRadius(10, 10, 10, 10); Button b = new Button(); b.MinWidth = 70; b.Background = new SolidColorBrush(Colors.Black); b.Foreground = new SolidColorBrush(Colors.Black); //b.Width = 70; b.Height = 25; b.Click += new RoutedEventHandler(b_Click); b.Content = p.ToString(); bord.Child = b; TwitterListStack.Children.Add(bord); } So here what am I doing, I am just dynamically creating a button for each of the lists and put them within a StackPanel and for each of these buttons, I am creating a event handler b_Click which will be fired on button click. We will look into this method in detail soon. For now let us get the buttons displayed. 5) Now the user might have some lists to which he has subscribed to. We need to create a button for these as well. In the end of TwitterCredentialsSubmit method, we need to make a call to http://api.twitter.com/1/<TwitterUsername>/lists/subscriptions.xml. Reference is available here. The code will look like this below. myService2.AllowReadStreamBuffering = true; myService2.UseDefaultCredentials = false; myService2.Credentials = new NetworkCredential(GlobalVariable.getUserName(), GlobalVariable.getPassword()); myService2.DownloadStringCompleted += new DownloadStringCompletedEventHandler(ListsSubsRequestCompleted); myService2.DownloadStringAsync(new Uri("http://api.twitter.com/1/" + GlobalVariable.getUserName() + "/lists/subscriptions.xml")); 6) In the event handler – ListsSubsRequestCompleted, we need to parse through the xml string and create a button for each of the lists subscribed, let us see how. I’ve taken only the “full_name”, you can choose what you want, refer the documentation here. Note the point that the full_name will have @<UserName>/<ListName> format – this will be useful very soon. xdoc = XDocument.Parse(text); var answer = (from status in xdoc.Descendants("list") select status.Element("full_name").Value); foreach (var p in answer) { Border bord = new Border(); bord.CornerRadius = new CornerRadius(10, 10, 10, 10); Button b = new Button(); b.Background = new SolidColorBrush(Colors.Black); b.Foreground = new SolidColorBrush(Colors.Black); //b.Width = 70; b.MinWidth = 70; b.Height = 25; b.Click += new RoutedEventHandler(b_Click); b.Content = p.ToString(); bord.Child = b; TwitterListStack.Children.Add(bord); } Please note, I am setting the button width to be auto based on the content and also giving it a midwidth value. I wanted to create a rounded corner buttons, but for some reason its not working. Also add this StackPanel – TwitterListStack of the Home.xaml <StackPanel HorizontalAlignment="Center" Orientation="Horizontal" Name="TwitterListStack"></StackPanel> After doing this, you would get a series of buttons in the top of the home page. 7) Now the button click event handler – b_Click, in this method, once the button is clicked, I call another method with the content string of the button which is clicked as the parameter. Button b = (Button)e.OriginalSource; getListStatuses(b.Content.ToString()); 8) Now the getListsStatuses method: toggleProgressBar(true); WebRequest.RegisterPrefix("http://", System.Net.Browser.WebRequestCreator.ClientHttp); WebClient myService = new WebClient(); myService.AllowReadStreamBuffering = true; myService.UseDefaultCredentials = false; myService.DownloadStringCompleted += new DownloadStringCompletedEventHandler(TimelineRequestCompleted); if (listName.IndexOf("@") > -1 && listName.IndexOf("/") > -1) { string[] arrays = null; arrays = listName.Split('/'); arrays[0] = arrays[0].Replace("@", " ").Trim(); //MessageBox.Show(arrays[0]); //MessageBox.Show(arrays[1]); string url = "http://api.twitter.com/1/" + arrays[0] + "/lists/" + arrays[1] + "/statuses.xml"; //MessageBox.Show(url); myService.DownloadStringAsync(new Uri(url)); } else myService.DownloadStringAsync(new Uri("http://api.twitter.com/1/" + GlobalVariable.getUserName() + "/lists/" + listName + "/statuses.xml")); Please note that the url to look at will be different based on the list clicked – if its user created, the url format will be http://api.twitter.com/1/<CurentUser>/lists/<ListName>/statuses.xml But if it is some lists subscribed, it will be http://api.twitter.com/1/<ListOwnerUserName>/lists/<ListName>/statuses.xml The first one is pretty straight forward to implement, but if its a list subscribed, we need to split the listName string to get the list owner and list name and user them to form the string. So that is what I’ve done in this method, if the listName has got “@” and “/” I build the url differently. 9) Until now, we’ve been using only a few nodes of the status message xml string, now we will look to fetch a new field - “profile_image_url”. Images in datagrid – COOL. So for that, we need to modify our Status.cs file to include two more fields one string another BitmapImage with get and set. public string profile_image_url { get; set; } public BitmapImage profileImage { get; set; } 10) Now let us change the generic parseXML method which is used for binding to the datagrid. public void parseXML(string text) { XDocument xdoc; xdoc = XDocument.Parse(text); statusList = new List<Status>(); statusList = (from status in xdoc.Descendants("status") select new Status { ID = status.Element("id").Value, Text = status.Element("text").Value, Source = status.Element("source").Value, UserID = status.Element("user").Element("id").Value, UserName = status.Element("user").Element("screen_name").Value, profile_image_url = status.Element("user").Element("profile_image_url").Value, profileImage = new BitmapImage(new Uri(status.Element("user").Element("profile_image_url").Value)) }).ToList(); DataGridStatus.ItemsSource = statusList; StatusMessage.Text = "Datagrid refreshed."; toggleProgressBar(false); } We are here creating a new bitmap image from the image url and creating a new Status object for every status and binding them to the data grid. Refer to the Twitter API documentation here. You can choose any column you want. 11) Until now, we’ve been using the auto generate columns for the data grid, but if you want it to be really cool, you need to define the columns with templates, etc… <data:DataGrid AutoGenerateColumns="False" Name="DataGridStatus" Height="Auto" MinWidth="400"> <data:DataGrid.Columns> <data:DataGridTemplateColumn Width="50" Header=""> <data:DataGridTemplateColumn.CellTemplate> <DataTemplate> <Image Source="{Binding profileImage}" Width="50" Height="50" Margin="1"/> </DataTemplate> </data:DataGridTemplateColumn.CellTemplate> </data:DataGridTemplateColumn> <data:DataGridTextColumn Width="Auto" Header="User Name" Binding="{Binding UserName}" /> <data:DataGridTemplateColumn MinWidth="300" Width="Auto" Header="Status"> <data:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock TextWrapping="Wrap" Text="{Binding Text}"/> </DataTemplate> </data:DataGridTemplateColumn.CellTemplate> </data:DataGridTemplateColumn> </data:DataGrid.Columns> </data:DataGrid> I’ve used only three columns – Profile image, Username, Status text. Now our Datagrid will look super cool like this. Coincidentally,  Tim Heuer is on the screenshot , who is a Silverlight Guru and works on SL team in Microsoft. His blog is really super. Here is the zipped file for all the xaml, xaml.cs & class files pages. Ok let us stop here for now, will look into implementing few more features in the next few posts and then I am going to look into developing a ASP.NET MVC 2 application. Hope you all liked this post. If you have any queries / suggestions feel free to comment below or contact me. Cheers! Technorati Tags: Silverlight,LINQ,Twitter API,Twitter,Silverlight 4

    Read the article

< Previous Page | 388 389 390 391 392 393 394 395 396 397 398 399  | Next Page >