Search Results

Search found 17151 results on 687 pages for 'event driven'.

Page 253/687 | < Previous Page | 249 250 251 252 253 254 255 256 257 258 259 260  | Next Page >

  • 15 Puzzle Shuffle Method Issues

    - by Codemiester
    I am making a 15 puzzle game in C# that allows the user to enter a custom row and column value up to a maximum of a 10 x 10 puzzle. Because of this I am having problems with the shuffle method. I want to make it so the puzzle is always solvable. By first creating a winning puzzle then shuffling the empty space. The problem is it is too inefficient to call every click event each time. I need a way to invoke the click event of a button adjacent to the empty space but not diagonal. I also use an invisible static button for the empty spot. The PuzzlePiece class inherits from Button. I am not too sure how to do this. I would appreciate any help. Thanks here is what I have: private void shuffleBoard() { //5 is just for test purposes for (int i = 0; i < 5; i++) { foreach (Control item in this.Controls) { if (item is PuzzlePiece) { ((PuzzlePiece)item).PerformClick(); } } } } void PuzzlePiece_Click(object sender, EventArgs e) { PuzzlePiece piece = (PuzzlePiece)sender; if (piece.Right == puzzleForm.emptyPiece.Left && piece.Top == puzzleForm.emptyPiece.Top) { movePiece(piece); } else if (piece.Left == puzzleForm.emptyPiece.Right && piece.Top == puzzleForm.emptyPiece.Top) { movePiece(piece); } else if (piece.Top == puzzleForm.emptyPiece.Bottom && piece.Left == puzzleForm.emptyPiece.Left) { movePiece(piece); } else if (piece.Bottom == puzzleForm.emptyPiece.Top && piece.Left == puzzleForm.emptyPiece.Left) { movePiece(piece); } }

    Read the article

  • What significant progress have we made in Rapid Application Development?

    - by Frank Computer
    Since the introduction of OOPL's and event-driven programming, I feel like developing an application has become harder and more tedious, when it should have been the other way around! We should have development tools which can generate prototype apps which can be quickly and easily customized into sophisticated applications, even by novice users! We really need new ideas in this area of software development and I would like to know of any good ideas. If we can't really find them, then we should ask "Where did we miss the boat?.. Why?.. and What should we be doing?"

    Read the article

  • Wake up from sleep with GPIO (I2C)

    - by spambas
    My situation: Ubuntu 10.10 running on an atom driven main board the main board has a GPIO chip integrated (F75111 by Fintek). They communicate through I2C(SMBus). We have a driver running that works, we can send outputs and read inputs. Great! We would like to use the I/O interface to suspend (sleep) and wake up again. Sleep is no problem. On an incoming input: run s2both. Ubuntu goes to sleep and prepares a hibernate state, so when the power-cord is unplugged by accident, it will wake from hibernate. But the big question: how to wake on an input if the OS is already sleeping! You can wake from a lot of devices (lan, usb, ring, etc) but I can't find out how to wake from a I2C card. PLEASE HELP!

    Read the article

  • Hidden Gems: Accelerating Oracle Data Integrator with SOA, Groovy, SDK, and XML

    - by Alex Kotopoulis
    On the last day of Oracle OpenWorld, we had a final advanced session on getting the most out of Oracle Data Integrator through the use of various advanced techniques. The primary way to improve your ODI processes is to choose the optimal knowledge modules for your load and take advantage of the optimized tools of your database, such as OracleDataPump and similar mechanisms in other databases. Knowledge modules also allow you to customize tasks, allowing you to codify best practices that are consistently applied by all integration developers. ODI SDK is another very powerful means to automate and speed up your integration development process. This allows you to automate Life Cycle Management, code comparison, repetitive code generation and change of your integration projects. The SDK is easily accessible through Java or scripting languages such as Groovy and Jython. Finally, all Oracle Data Integration products provide services that can be integrated into a larger Service Oriented Architecture. This moved data integration from an isolated environment into an agile part of a larger business process environment. All Oracle data integration products can play a part in thisracle GoldenGate can integrate into business event streams by processing JMS queues or publishing new events based on database transactions. Oracle GoldenGate can integrate into business event streams by processing JMS queues or publishing new events based on database transactions. Oracle Data Integrator allows full control of its runtime sessions through web services, so that integration jobs can become part of business processes. Oracle Data Service Integrator provides a data virtualization layer over your distributed sources, allowing unified reading and updating for heterogeneous data without replicating and moving data. Oracle Enterprise Data Quality provides data quality services to cleanse and deduplicate your records through web services.

    Read the article

  • Zensyslog Clear Events

    - by Stefan Mai
    I've hooked up Zenoss' Zensyslog so that messages from a distributed list of client machines are all conglomerated into events on the Zenoss server. This is all fantastic, and I can bump messages by simply using the logger command: logger -t webserver_is_down "The web server is down" What I'd like to be able to do is also post an event that clears for when the webserver comes up. logger -t webserver_is_up "The web server is up" I've tried to set this up with Event classes but with no dice. Is there a Syslog level that correlates with Zenoss' clear/0 level? Is there another easy way to do this? Thanks for any help you can give!

    Read the article

  • Testing To Prevent Cascading Bugs

    - by jfrankcarr
    Yesterday, Twitter was hit with a "Cascading Bug" as described in this blog post: A “cascading bug” is a bug with an effect that isn’t confined to a particular software element, but rather its effect “cascades” into other elements as well. I've seen this kind of bug, on a smaller scale of course, on some projects I've worked on. They can be difficult to identify in dev/test environments, even within a test driven development environment. My questions are... What are some strategies you use, beyond the basic TDD and standard regression testing, to identify and prevent the potential trouble points that might only occur in the production environment? Does the presence of such problems indicate a breakdown in the software development process or simply a by-product of complex software systems?

    Read the article

  • what knowledge would I need to make a good simulation games

    - by Skeith
    I have an idea for a game like theme park but don't know how simulation games are made. I am not some noob on his first game so I appreciated constructive answers instead of "its hard, don't do it". What I want is to know how simulation game mechanics are put together. I figure it would be heaver on the AI than normal games and not knowing much about AI would like to know some programming techniques I should look into for this style game. specific techniques please not just a book on ai. what sort of architecture would be used? I guess it would have some sort of probability engine with pre designed events that are triggered based on the AI state. Would it use a FSM or be purely event driven ? Any information on how a sims game functions would be cool.

    Read the article

  • Announcing Oracle Enterprise Manager 12c Release 4

    - by Javier Puerta
    Oracle Delivers Latest Release of Oracle Enterprise Manager 12c. Richer Service Catalog for Database and Middleware as a Service; Enhanced Database and Middleware Management Help Drive Enterprise-Scale Private Cloud Adoption. Oracle Enterprise Manager 12c Release 4, available today, lets organizations rapidly adopt Oracle-based, enterprise-scale private clouds. New capabilities provide advanced technology stack management, secure database administration, and enterprise service governance, enabling Oracle customers and partners to maximize database and application performance and drive innovation using self-service IT platforms. The enhancements have been driven by customers and the growing Oracle Enterprise Manager Ecosystem, comprised of more than 750 Oracle PartnerNetwork (OPN) Specialized partners. Oracle and its partners and customers have built over 140 plug-ins and connectors for Oracle Enterprise Manager. Watch Dan Koloski introducing Enterprise Manager 12c Release 4 in this video

    Read the article

  • Announcing Oracle Enterprise Manager 12c Release 4

    - by Javier Puerta
    Oracle Delivers Latest Release of Oracle Enterprise Manager 12c. Richer Service Catalog for Database and Middleware as a Service; Enhanced Database and Middleware Management Help Drive Enterprise-Scale Private Cloud Adoption. Oracle Enterprise Manager 12c Release 4, available today, lets organizations rapidly adopt Oracle-based, enterprise-scale private clouds. New capabilities provide advanced technology stack management, secure database administration, and enterprise service governance, enabling Oracle customers and partners to maximize database and application performance and drive innovation using self-service IT platforms. The enhancements have been driven by customers and the growing Oracle Enterprise Manager Ecosystem, comprised of more than 750 Oracle PartnerNetwork (OPN) Specialized partners. Oracle and its partners and customers have built over 140 plug-ins and connectors for Oracle Enterprise Manager. Watch Dan Koloski introducing Enterprise Manager 12c Release 4 in this video

    Read the article

  • How would I pursue a track in front-end web development?

    - by Koviko
    I've recently been put on heavy JavaScript projects and have become fond of the front-end world in comparison to the back-end. I have always been good at proper markup and CSS, and coupled with AJAX, pretty animations, and dynamically generated content, it's become a much more interesting and flashy world for me. I would like to be able to continue to hone my craft in the same way that I was able to become proficient at back-end development with PHP: getting paid to do it. How would I market myself as a front-end web developer with a strong interest in dynamic JavaScript-driven websites? Due to my strong background in back-end development, how would I find the companies that wouldn't waste my front-end skill set on simple HTML/CSS development? And as a bonus, how would I apply this to being a contractor/freelance developer rather than a salaried employee? While I like the idea of being able to remain a part of my creations, I also dislike the maintenance phase of projects.

    Read the article

  • How to devise instruction set of a stack based machine?

    - by Anindya Chatterjee
    Stack based virtual machines like CLR and JVM has different set of instructions. Is there any theory behind devising the instruction set while creating a virtual machine? e.g. there are JVM instruction sets to load constants from 0-5 onto the stack iconst_0 iconst_1 iconst_2 iconst_3 iconst_4 iconst_5 whereas in CLR there are instruction set to load number from 0 to 8 onto the stack as follows ldc.i4.0 ldc.i4.1 ldc.i4.2 ldc.i4.3 ldc.i4.4 ldc.i4.5 ldc.i4.6 ldc.i4.7 ldc.i4.8 why there is no ldc.i4.9 and if ldc.i4 is there why we need the above opcodes? And there are others like these. I am eager to know what is the reason behind this difference between opcodes of different VMs? Is there any specific theory to devise these opcodes or it is totally driven by the characteristics of the VM itself or depends on the high-level language constructs?

    Read the article

  • Webcast: SANS Institute Product Review of Oracle Identity Manager 11gR2

    - by B Shashikumar
    Translating the IT-centric, directory based view of access and authorization into the process-driven concerns of business users inevitably creates unique challenges. Enterprises struggle to determine which users have access to what resources and what they are doing with that access. Enforcing governance controls is critical to reduce the risk that an employee or malicious third party with excessive access will take advantage of that access. Dave Shackleford, SANS analyst, recently reviewed the User Provisioning capabilities of Oracle Identity Manager 11gR2. In this webcast, attendees will hear from Dave and other Oracle and customer experts on: The key challenges associated with implementing self-service user provisioning Oracle’s unique online “shopping cart” model for self-service access request Real world case study of user provisioning Best practices for deployment Register today, for this complimentary webcast, hosted by The SANS Institute. Attendees will be among the first to receive a new SANS Analyst Whitepaper on this subject. When: Thur Sep 27  9am PT/12p ET Where: Register here

    Read the article

  • Should I build a multi-threaded system that handles events from a game and sorts them, independently, into different threads based on priority?

    - by JonathonG
    Can I build a multi-threaded system that handles events from a game and sorts them, independently, into different threads based on priority, and is it a good idea? Here's more info: I am about to begin work on porting a mid-sized game from Flash/AS3 to Java so that I can continue development with multi-threading capabilities. Here's a small bit of background about the game: The game contains numerous asynchronous activities, such as "world updating" (the game environment is constantly changing based on a set of natural laws and forces), procedural generation of terrain, NPCs, quests, items, etc., and on top of that, the effects of all of the player's interactions with his environment are programmatically calculated in real time, based on a set of constantly changing "stats" and once again, natural laws and forces. All of these things going on at once, in an asynchronous manner, seem to lend themselves to multi-threading very well. My question is: Can I build some kind of central engine that handles the "stacking" of all of these events as they are triggered, and dynamically sorts them out amongst the available threads, and would it be a good idea? As an example: Essentially, every time something happens (IE, a magic missile being generated by a spell, or a bunch of plants need to grow to their next stage), instead of just processing that task right then and adding the new object(s) to a list of managed objects, send a reference to that event to a core "event handler" that throws it into a stack of all other currently queued events, which then sorts them out and orders them according to urgency, splits them between a number of available threads for as-fast-as-possible multithreaded execution.

    Read the article

  • Declarative Transactions in Node.js

    - by James Kingsbery
    Back in the day, it was common to manage database transactions in Java by writing code that did it. Something like this: Transaction tx = session.startTransaction(); ... try { tx.commit(); } catch (SomeException e){ tx.rollback(); } at the beginning and end of every method. This had some obvious problems - it's redundant, hides the intent of what's happening, etc. So, along came annotation-driven transactions: @Transaction public SomeResultObj getResult(...){ ... } Is there any support for declarative transaction management in node.js?

    Read the article

  • Google Analytics Social Tracking implementation. Is Google's example correct?

    - by s_a
    The current Google Analytics help page on Social tracking (developers.google.com/analytics/devguides/collection/gajs/gaTrackingSocial?hl=es-419) links to this page with an example of the implementation: http://analytics-api-samples.googlecode.com/svn/trunk/src/tracking/javascript/v5/social/facebook_js_async.html I've followed the example carefully yet social interactions are not registered. This is the webpage with the non-working setup: http://bit.ly/1dA00dY (obscured domain as per Google's Webmaster Central recommendations for their product forums) This is the structure of the page: In the : ga async code copied from the analytics' page a script tag linking to stored in the same domain. the twitter js loading tag In the the fb-root div the facebook async loading js including the _ga.trackFacebook(); call the social buttons afterwards, like so: (with the proper URL) Tweet (with the proper handle) That's it. As far as I can tell, I have implemented it exactly like in the example, but likes and twitts aren't registered. I have also altered the ga_social_tracking.js to register the social interactions as events, adding the code below. It doesn't work either. What could be wrong? Thanks! Code added to ga_social_tracking.js var url = document.URL; var category = 'Social Media'; /* Facebook */ FB.Event.subscribe('edge.create', function(href, widget) { _gaq.push(['_trackEvent', category, 'Facebook', url]); }); /* Twitter */ twttr.events.bind('tweet', function(event) { _gaq.push(['_trackEvent', category, 'Twitter', url]); });

    Read the article

  • Pros and Cons of Facebook's React vs. Web Components (Polymer)

    - by CletusW
    What are the main benefits of Facebook's React over the upcoming Web Components spec and vice versa (or perhaps a more apples-to-apples comparison would be to Google's Polymer library)? According to this JSConf EU talk and the React homepage, the main benefits of React are: Decoupling and increased cohesion using a component model Abstraction, Composition and Expressivity Virtual DOM & Synthetic events (which basically means they completely re-implemented the DOM and its event system) Enables modern HTML5 event stuff on IE 8 Server-side rendering Testability Bindings to SVG, VML, and <canvas> Almost everything mentioned is being integrated into browsers natively through Web Components except this virtual DOM concept (obviously). I can see how the virtual DOM and synthetic events can be beneficial today to support old browsers, but isn't throwing away a huge chunk of native browser code kind of like shooting yourself in the foot in the long term? As far as modern browsers are concerned, isn't that a lot of unnecessary overhead/reinventing of the wheel? Here are some things I think React is missing that Web Components will care of. Correct me if I'm wrong. Native browser support (read "guaranteed to be faster") Write script in a scripting language, write styles in a styling language, write markup in a markup language. Style encapsulation using Shadow DOM React instead has this, which requires writing CSS in JavaScript. Not pretty. Two-way binding

    Read the article

  • IIS 5 default website (Stopped) after new install on new box

    - by unknown (yahoo)
    We just got new boxes at work. Running Xp, IIs 5.1 (yeah I know corporate decision, not mine) when I go look at inetmgr (iis) the default website it stopped. if restarted, I get an error that it didn't respond in a timely manor I ran netstat -an, and -o and saw nothing had port 80 open. cleared my event viewer, restarted iis and restarted iisadmin service (and theirby smtp) no errors in the event log. I ran aspnet_regiis -i jsut in case. Still no joy. I'm stumped. Can any think of anything else to try? Thanks, E-

    Read the article

  • Featured partner: Avnet To Supply Oracle Enterprise Cloud Management Solutions In Middle East & North Africa Region

    - by Javier Puerta
    "Global IT solutions distribution leader, Avnet Technology Solutions have been approved to distribute Oracle Enterprise Manager 12c, a complete, integrated and business-driven enterprise cloud management solution, in the Middle East & North Africa region. This will help Avnet which serve customers and suppliers in more than 70 countries to accelerate partners’ business growth in the region while providing support and enablement services to help them quickly address local opportunities. Oracle Enterprise Manager 12c creates business value from IT by leveraging the built-in management capabilities of the Oracle stack for traditional and cloud environments. Using this solution, customers have reported 12 times faster achievement of IT-business alignment. According to Senior Director Oracle business MENA, Avnet Technology Solutions, Hani Barakat, “Enterprises in the Middle East and North Africa region can increase their efficiency and responsiveness while reducing costs and complexity for traditional data centers, virtualised, and cloud computing environments with the help of Oracle Enterprise Manager 12c.” See full press release in "Ventures Africa"

    Read the article

  • Organic Business Networks -Don't Miss This Webcast!

    - by Michael Snow
    TUNE IN TODAY!! Oracle Social Business Thought Leaders Webcast Series Thursday, June 21st 10am PST  Organic Business Networks: Doing Business in a Hyper-Connected World Organic business networks connect people, data, content, and IT systems in a flexible, self-optimizing, self-healing, self-configuring and self-protecting system. Join us for this webcast and hear examples of how businesses today can effectively utilize the interconnectedness of emerging business information environments, adapt to changing conditions, and leverage assets effectively to thrive in a hyper-connected, globally competitive, information driven world. Listen as Featured Speaker, Michael Fauscette, GVP, Software Business Solutions, IDC, discusses: Emerging trends in social business that are driving transformative changes today The dynamic characteristics that make up social, collaborative, and connected enterprises Effective ways that technology combined with culture and process provide unique competitive advantage through new organic networked business models. Register now for the fifth Webcast in the Social Business Thought Leaders Series,“Organic Business Networks: Doing Business in a Hyper-Connected World.”

    Read the article

  • Browser automatically refreshes and Home folder window opens

    - by Vikash
    I am facing a very strange problem. Out of the blue, my browser starts refreshing itself infinitely. My first guess was firefox is messing up. I installed chrome. But, it happens in chrome as well. Other than that, sometimes my home folder automatically opens and keep opening itself infinitely. My next guess was Mouse is faulty. Replace the mouse - but same things. This happens even if I remove my keyboard. What can be the reason? This started happening after I installed Ubuntu 10.10 few days back. Earlier on windows, everything was working fine. So, I am a bit skeptical to assume that this is a hardware fault. How to fix this problem? UPDATE: xev gives this kind of result: KeyPress event, serial 36, synthetic NO, window 0x4200001, root 0xb8, subw 0x0, time 29897358, (237,791), root:(1252,842), state 0x10, keycode 65 (keysym 0x20, space), same_screen YES, XLookupString gives 1 bytes: (20) " " XmbLookupString gives 1 bytes: (20) " " XFilterEvent returns: False KeyRelease event, serial 36, synthetic NO, window 0x4200001, root 0xb8, subw 0x0, time 29897603, (237,791), root:(1252,842), state 0x10, keycode 65 (keysym 0x20, space), same_screen YES, XLookupString gives 1 bytes: (20) " " XFilterEvent returns: False

    Read the article

  • Best practices for Persona development

    - by user12277104
    Over the years, I have created a lot of Personas, I've co-authored a new method for creating them, and I've given talks about best practices for creating your own, so when I saw a call for participation in the OpenPersonas project, I was intrigued. While Jeremy and Steve were calling for persona content, that wasn't something I could contribute -- most of the personas I've created have been proprietary and specific to particular domains of my employers. However, I felt like there were a few things I could contribute: a process, a list of interview questions, and what information good personas should contain. The first item, my process for creating data-driven personas, I've posted as a list of best practices. My next post will be the list of 15 interview questions I use to guide the conversations with people whose data will become the personas. The last thing I'll share is a list of items that need to be part of any good persona artifact -- and if I have time, I'll mock them up in a template or two. 

    Read the article

  • Friday Tips #34

    - by Chris Kawalek
    Happy Friday! I wanted to take the opportunity this week to not give out a tip per se, but to point you to a really fantastic white paper that you might have missed. It's called What It Takes to Deploy and Manage a Private Cloud with Oracle VM. The paper is filled with useful information and it's written in a really entertaining style, tackling the IT challenges of a friendly systems administrator named Dave. It gives a great overview of application-driven virtualization and covers Oracle VM, Oracle VM Templates, Oracle VM Storage Connect, and Oracle Enterprise Manager. Read the white paper What It Takes to Deploy and Manage a Private Cloud with Oracle VM. See you next week! -Chris 

    Read the article

  • What's Up for "We're Almost There" Wednesday

    - by Oracle OpenWorld Blog Team
     By Karen Shamban Wow - can't believe we're looking at Wednesday already!  Still so much to do, places to go, people to talk with. The last day for the Exhibition Halls is Wednesday, so be sure to spend time there if you haven't done so already. And don't forget (as if you would) that the famed Oracle Appreciation Event is Wednesday night on Treasure Island.  Here are just some of the big things happening Wednesday, October 3: Registration Moscone West, Moscone South, Hilton San Francisco, Westin St. Francis, Hotel Nikko, 7:00 a.m. - 6:30 p.m. Oracle OpenWorld Keynote featuring Oracle executives John Fowler, Edward Screven, and Juan Loiaza Moscone North Hall D, 8:00 a.m. - 9:45 a.m. Exhibition Halls Open Moscone South and Moscone West, 9:45 a.m. - 4:00 p.m. General Sessions Various times and locations Sessions, Demos, Labs Various times and locations Oracle Appreciation Event, featuring Pearl Jam, with Kings of Leon and X Treasure Island, 7:30 p.m. - 1:00 a.m. (note: must have approved wristband to attend) After what is sure to be a late night, it's good to know that the Thursday keynotes don't start until 9:00 a.m. They're going to be really great, so you won't want to miss them!

    Read the article

  • Emploi : W4 recrute 5 ingénieurs d'étude et développement Java et un ingénieur support produit pour renforcer son équipe

    Emploi : W4 recrute 5 ingénieurs d'étude et développement Java Et un ingénieur support produit pour renforcer son équipe W4, l'éditeur français de logiciels à vocation internationale, lance une campagne de recrutement pour renforcer son équipe. W4 a été fondé en 1996. Il est aujourd'hui un des leaders du BPM (Business Process Management) et du MDE (Model Driven Engineering) avec une base installée de plus de 300 clients, dont Bouygues, SFR, Orange, Air France, Thalès, La Banque Postale etc... La société annonce pour 2010 près de 30% de croissance sur ses ventes de licences par rapport à 2009 et un résultat net de 15% de son chiffre d'affaires. "Le ...

    Read the article

  • Collaborative Whiteboard using WebSocket in GlassFish 4 - Text/JSON and Binary/ArrayBuffer Data Transfer (TOTD #189)

    - by arungupta
    This blog has published a few blogs on using JSR 356 Reference Implementation (Tyrus) as its integrated in GlassFish 4 promoted builds. TOTD #183: Getting Started with WebSocket in GlassFish TOTD #184: Logging WebSocket Frames using Chrome Developer Tools, Net-internals and Wireshark TOTD #185: Processing Text and Binary (Blob, ArrayBuffer, ArrayBufferView) Payload in WebSocket TOTD #186: Custom Text and Binary Payloads using WebSocket One of the typical usecase for WebSocket is online collaborative games. This Tip Of The Day (TOTD) explains a sample that can be used to build such games easily. The application is a collaborative whiteboard where different shapes can be drawn in multiple colors. The shapes drawn on one browser are automatically drawn on all other peer browsers that are connected to the same endpoint. The shape, color, and coordinates of the image are transfered using a JSON structure. A browser may opt-out of sharing the figures. Alternatively any browser can send a snapshot of their existing whiteboard to all other browsers. Take a look at this video to understand how the application work and the underlying code. The complete sample code can be downloaded here. The code behind the application is also explained below. The web page (index.jsp) has a HTML5 Canvas as shown: <canvas id="myCanvas" width="150" height="150" style="border:1px solid #000000;"></canvas> And some radio buttons to choose the color and shape. By default, the shape, color, and coordinates of any figure drawn on the canvas are put in a JSON structure and sent as a message to the WebSocket endpoint. The JSON structure looks like: { "shape": "square", "color": "#FF0000", "coords": { "x": 31.59999942779541, "y": 49.91999053955078 }} The endpoint definition looks like: @WebSocketEndpoint(value = "websocket",encoders = {FigureDecoderEncoder.class},decoders = {FigureDecoderEncoder.class})public class Whiteboard { As you can see, the endpoint has decoder and encoder registered that decodes JSON to a Figure (a POJO class) and vice versa respectively. The decode method looks like: public Figure decode(String string) throws DecodeException { try { JSONObject jsonObject = new JSONObject(string); return new Figure(jsonObject); } catch (JSONException ex) { throw new DecodeException("Error parsing JSON", ex.getMessage(), ex.fillInStackTrace()); }} And the encode method looks like: public String encode(Figure figure) throws EncodeException { return figure.getJson().toString();} FigureDecoderEncoder implements both decoder and encoder functionality but thats purely for convenience. But the recommended design pattern is to keep them in separate classes. In certain cases, you may even need only one of them. On the client-side, the Canvas is initialized as: var canvas = document.getElementById("myCanvas");var context = canvas.getContext("2d");canvas.addEventListener("click", defineImage, false); The defineImage method constructs the JSON structure as shown above and sends it to the endpoint using websocket.send(). An instant snapshot of the canvas is sent using binary transfer with WebSocket. The WebSocket is initialized as: var wsUri = "ws://localhost:8080/whiteboard/websocket";var websocket = new WebSocket(wsUri);websocket.binaryType = "arraybuffer"; The important part is to set the binaryType property of WebSocket to arraybuffer. This ensures that any binary transfers using WebSocket are done using ArrayBuffer as the default type seem to be blob. The actual binary data transfer is done using the following: var image = context.getImageData(0, 0, canvas.width, canvas.height);var buffer = new ArrayBuffer(image.data.length);var bytes = new Uint8Array(buffer);for (var i=0; i<bytes.length; i++) { bytes[i] = image.data[i];}websocket.send(bytes); This comprehensive sample shows the following features of JSR 356 API: Annotation-driven endpoints Send/receive text and binary payload in WebSocket Encoders/decoders for custom text payload In addition, it also shows how images can be captured and drawn using HTML5 Canvas in a JSP. How could this be turned in to an online game ? Imagine drawing a Tic-tac-toe board on the canvas with two players playing and others watching. Then you can build access rights and controls within the application itself. Instead of sending a snapshot of the canvas on demand, a new peer joining the game could be automatically transferred the current state as well. Do you want to build this game ? I built a similar game a few years ago. Do somebody want to rewrite the game using WebSocket APIs ? :-) Many thanks to Jitu and Akshay for helping through the WebSocket internals! Here are some references for you: JSR 356: Java API for WebSocket - Specification (Early Draft) and Implementation (already integrated in GlassFish 4 promoted builds) Subsequent blogs will discuss the following topics (not necessary in that order) ... Error handling Interface-driven WebSocket endpoint Java client API Client and Server configuration Security Subprotocols Extensions Other topics from the API

    Read the article

< Previous Page | 249 250 251 252 253 254 255 256 257 258 259 260  | Next Page >