Search Results

Search found 13573 results on 543 pages for 'the great widi'.

Page 228/543 | < Previous Page | 224 225 226 227 228 229 230 231 232 233 234 235  | Next Page >

  • LTO 3 tape drive needing repaired

    - by DO it all Paul
    We have an IBM LTO 3 tape drive that needs repaired and with the £400 price tag i'm having to shop around for quotes. My question is has anyone actually repaired one before and how was in done? The first error LED was showing a 6, then i cleared the mangled tape only for it to start flashing alternate 'o' on the 7 segment display, simliar to a half 8, flashing top to bottom and it would just flash away like that coupled with a flashing amber light. I tried a reset holding the eject button for it to show an 'r' the go back to flashing again as before. I checked the IBM solutions for the codes but this flashing isn't documented at all. Would be great if anyone had any experience in this area. Thank you, Paul

    Read the article

  • How do graphics programmers deal with rendering vertices that don't change the image?

    - by canisrufus
    So, the title is a little awkward. I'll give some background, and then ask my question. Background: I work as a web GIS application developer, but in my spare time I've been playing with map rendering and improving data interchange formats. I work only in 2D space. One interesting issue I've encountered is that when you're rendering a polygon at a small scale (zoomed way out), many of the vertices are redundant. An extreme case would be that you have a polygon with 500,000 vertices that only takes up a single pixel. If you're sending this data to the browser, it would make sense to omit ~499,999 of those vertices. One way we achieve that is by rendering an image on a server and and sending it as a PNG: voila, it's a point. Sometimes, though, we want data sent to the browser where it can be rendered with SVG (or canvas, or webgl) so that it can be interactive. The problem: It turns out that, using modern geographic data sets, it's very easy to overload SVG's rendering abilities. In an effort to cope with those limitations, I'm trying to figure out how to visually losslessly reduce a data set for a given scale and map extent (and, if necessary, for a known map pixel width and height). I got a great reduction in data size just using the Douglas-Peucker algorithm, and I believe I was able to get it to keep the polygons true to within one pixel. Unfortunately, Douglas-Peucker doesn't preserve topology, so it changed how borders between polygons got rendered. I couldn't readily find other algorithms to try out and adapt to the purpose, but I don't have much CS/algorithm background and might not recognize them if I saw them.

    Read the article

  • Speaker at the German Visual FoxPro Developer Conference 2005

    The following is an excerpt from the UniversalThread conference coverage of the German Visual FoxPro Developer Conference 2005 written by Armin Neudert and Jan Vit. Unfortunately, my sessions were not covered at all but I was there as a speaker after all: [...] We are happy to welcome back several speakers that have already been giving sessions in previous DevCons, but hadn’t been here for one or more years. In detail: Steven Black is back after several years. Marcia Akins and her husband Andy Kramek couldn’t come in 2004 and are back again now. Regarding German speakers, Andreas Flohr and Torsten Weggen are also here again, after not doing sessions for two, respectively four years at this conference. At this point we would like to send some regards to the speakers that couldn’t come to Frankfurt this year, since they are very busy at the moment or are doing sessions anywhere else in the world right now. We are also proud to announce several speakers that are here for the very first time. Welcome to Doug Hennig, Rick Schumer, Craig Berntson, Marcus Luz and Benjamin Anders. And of course, there all the well known speakers which did great sessions over the last years: Sebastian Flucke, Uwe Habermann, Peter Herzog, Venelina Jordanova, Dan Jurden, Jochen Kirstätter, Nathalie Mengel, Lisa Slater Nichols, Michael Niethammer, Rick Strahl, Markus Winhard, Eugen Wirsing, Christof Wollenhaupt and myself - Armin Neudert :-) [...]

    Read the article

  • Manage song metadata on CentOS from command line

    - by Puddingfox
    I am making a simple Pandora.com alternative for myself and a few friends where the user can upload his/her songs and listen to them anywhere. My intent is to make a lightweight, simple player in HTML5 so all the user needs is a current Firefox or Chrome to use it. I have set it up so that all uploaded songs get converted to .ogg and added to a database but I also want some metadata (not sure if that is the correct term) for the songs to be stored in the database so the player can tell the user what song he/she is listening too. I know there are several GUI tools for managing the title/artist/album info for songs but I'm having trouble finding any good ones I can use from the command line. If the song has the information already in the file, I think I can use mplayer to retrieve the information but it would be really great if there was one that would look up the song information online. I don't mind interfacing with an API (would be pretty interesting actually). Do you guys have any suggestions?

    Read the article

  • Acceptable sound quality: stereo needed for an Android game?

    - by Thomas Calc
    I have various simple short sound effects (damage sound, dying sound, thunderbolt, fanfare, breaking) for a game that is developed for Android currently. I use OGG files: 96kbps VBR, 44.1KHz, 2 channels (that means stereo, right?). I read the other stackexchange topics about "acceptable sound quality", but they're too general, address too many things. My experience is that even with 80kbps, my effects sound OK. But I tested it on a limited number of Android devices (including a Sony Ericsson Xperia Neo and a HTC Desire HD). My questions: For mobile phones and tablets, generally, what parameters are recommended? Won't my 80kbps sounds be bad on a newer device (such as a modern tablet)? I don't hear any difference between stereo and mono (2 channels vs. 1 channel, right?), is there any noticeable difference at all for mobile phones / tablets? (in terms of the player experience) May it worth it at all? I assume that stereo sounds take much more in memory (when they're decoded to PCM), despite of the fact that the compressed OGG size is practically the same. Reacting to Roy T.'s great comment: Actually, I couldn't measure the PCM size (Android decodes OGG internally), but I thought that stereo will take more space than mono when uncompressed After throwing out one of the WAV channels in Audacity, and re-exporting it: The new WAV file size is half than before The OGG file size is practically the same as before The sound effects and game music was recorded by my friend who is an experienced hobby musician/composer, but he knows little about computers & software so he just gave me some high-quality WAV files generated via his hardware.These were stereo, but if I check them in Audacity, both channels appear to be exactly the same.Can I consider them the same (= moving to mono), or might there be some unnoticeable differences to the human eye?

    Read the article

  • external SCSI tape drive DAT 72 problem Solaris 10

    - by Hassan
    Hi all, I have solaris 10 sparc running and working very well but i have problem with external SCSI tape drive DAT 72 problem it seems to me the tape drive is manufactured by SUN microsystems when i ran mt -f /dev/rmt/0 status it reveals the following output bash-3.00# mt -f /dev/rmt/0 status /dev/rmt/0: No such file or directory when i ran ls -l it reveals the following output ls -l /dev/rmt/0 lrwxrwxrwx 1 root root 43 Sep 20 2006 /dev/rmt/0 -> ../../devices/pci@8,600000/scsi@1,1/st@3,0: it seems to me everything is okay SCSI cable is connected properly to Tape device and to server as well the tape has SCSI termination dongle as well and connected properly to Tape device as well any ideas would be a great assist Thanks in advance

    Read the article

  • Algorithmically generating neon layers on pixel grid

    - by user190929
    In an attempt at a screensaver I am making, I am a fan of neo-like graphics, which, of course, look great against a black background. As I understand it, neon, graphically speaking, is essentially a gradient of a color, brightest in the center, and gets darker proceeding outward. Although, more accurate is similar, but separating it into tubes and glow. The tubes are mostly white, while the glow is where most of the color is seen. Well... the tubes could also be a light variant of the color, you could say. The glow is darker. Anyhow, my question is, how could you generate such things given an initial pattern of pixels that would be the tubes? For example, let's say I want to make a neon 'H'. I, via the libraries, can attain the rectangles of pixels which represent it, but I want to make it look neonized. How could I algorithmically achieve such an effect given a base tube shape and base color? EDIT: ok, I mistated that. Got a bit distracted. My purpose for this was similar to a neon effect, but not. Sorry about that. What I am looking for is something like this: Start with a pattern of pixels: [!][!][!][!][!][!][!][!] [!][!][O][!][!][!][!][!] [!][!][O][O][!][!][!][!] [!][!][!][!][O][!][!][!] [!][!][!][!][!][!][!][!] How to I find the U pixels? [!][E][E][E][!][!][!][!] [!][E][O][E][E][!][!][!] [!][E][O][O][E][E][!][!] [!][E][E][E][O][E][!][!] [!][!][!][E][E][E][!][!] Sorry if that looks bad.

    Read the article

  • How can I track a bug that caused a crash and was reported via apport / whoopsie?

    - by nealmcb
    It used to be that when a program crashed, especially when a user was using a pre-release of Ubuntu, apport could be used to open a bug report. The user could then track the bug, see if it affected others, help fix it, etc. As of Precise 12.04, this behavior and workflow changed. As I discovered in Bug #993450 “Apport fails to submit bug report”, by default apport no longer opens a bug report (and it is awkward but not impossible to get it to do so). At the same time people are noticing a new "whoopsie" process, as described at What is the 'whoopsie' process and what does it do?. After some more googling, I dug this blueprint up, which describes the whole process: ErrorTracker - Ubuntu Wiki. (It didn't mention whoopsie or daisy, so I added them - please correct me if I got it wrong). Wow - this sounds like great work to streamline and improve the crash reporting process. I'm left with this question: how does a user learn what the status of the problem is? The blueprint now has this requirement The user should have some way to check back on the status of their crash report; e.g. have some report ID they can look at to see statistics and/or any associated bug #. E.g. provide a serial number at time of filing that they can load via a web page later on. which seems unimplemented. Is there anything available in the meantime? And how does a developer get into the game? Going to https://daisy.ubuntu.com just provides an "Incorrect Content-Type" error message. Finally, I suggest documenting the apport behavior changes in the Release Notes. It should be of interest to anyone who has been trying to help out Ubuntu.

    Read the article

  • Oracle HCM User Group (OHUG) 2012 Conference

    - by Maria Ana Santiago
    The PeopleSoft HCM team is looking forward to a great OHUG conference and to meeting with our PeopleSoft HCM Customers there! The OHUG Global Conference 2012 will be held at the Mirage in Las Vegas, Nevada, June 18-22, 2012. With Oracle Corporation's continued support of the Global OHUG Conference, this event is one of the best opportunities PeopleSoft HCM Customers have to interact and communicate directly with PeopleSoft Strategy, Development and Support and understand the entire Oracle HCM opportunities that await. PeopleSoft HCM has 10 exciting sessions and several Meet the Experts sessions planned to highlight the value and opportunities with PeopleSoft applications. For details on the PeopleSoft HCM tracks and sessions please visit the OHUG Session Line Up page. PeopleSoft HCM will be offering an annual General Roadmap session by Tracy Martin and multiple Product specific sessions. Our PeopleSoft HCM General session will provide very valuable information on our continuous delivery strategy and upcoming HCM 9.2 release and beyond. Tracy will also address opportunities that await PeopleSoft customers with co-exist opportunities with Fusion, Taleo, Oracle BI and more. Our Product Roadmap sessions will go into product specific areas providing roadmap information for the corresponding product domains. There will also be a PeopleTools Roadmap and Vision session that will let Customers see what is new in PeopleTools and what is planned for the future. And last, but not least, PeopleSoft will be holding the annual Meet the Experts sessions. Customers who want to have focused discussions on specific areas or products can meet with PeopleSoft Strategy, Development and Support teams who will be available to discuss product features and answer Customers' questions. Don’t miss this opportunity! If you are a PeopleSoft HCM Customer, join us at OHUG! Look forward to seeing you there.

    Read the article

  • Design Pattern Advice for Bluetooth App for Android

    - by Aimee Jones
    I’m looking for some advice on which patterns would apply to some of my work. I’m planning on doing a project as part of my college work and I need a bit of help. My main project is to make a basic Android bluetooth tracking system where the fixed locations of bluetooth dongles are mapped onto a map of a building. So my android app will regularly scan for nearby dongles and triangulate its location based on signal strength. The dongles location would be saved to a database along with their mac addresses to differentiate between them. The android phones location will then be sent to a server. This information will be used to show the phone’s location on a map of the building, or map of a route taken, on a website. My side project is to choose a suitable design pattern that could be implemented in this main project. I’m still a bit new to design patterns and am finding it hard to get my head around ones that may be suitable. I’ve heard maybe some that are aimed at web applications for the server side of things may be appropriate. My research so far is leading me to the following: Navigation Strategy Pattern Observer Pattern Command Pattern News Design Pattern Any advice would be a great help! Thanks

    Read the article

  • systemctl enable differs from systemctl start, how?

    - by rudi_visser
    I am running an Arch Linux (latest, up-to-date) box, and attempting to get MySQL to start at boot. With the systemd package installed I have systemctl available, and as such I can do things like this: systemctl start mysqld.service systemctl [stop|status|restart] mysqld.service That's all fine, and works great when I want to start/stop manually, however, when it comes to getting it to start at boot (by using 'enable' on systemctl, I get some nasty output): [root@rudivarch ~]# systemctl enable mysqld.service Failed to issue method call: No such file or directory Obviously, since the other commands work just fine, I'm seriously confused by this and have spent a good while trying to figure it out... systemctl status outputs this: [root@rudivarch ~]# systemctl status mysqld.service mysqld.service Loaded: loaded (/etc/rc.d/mysqld) Active: inactive (dead) since Tue, 31 Jan 2012 15:32:28 +0000; 1min 25s ago Process: 589 ExecStop=/etc/rc.d/mysqld stop (code=exited, status=0/SUCCESS) Process: 257 ExecStart=/etc/rc.d/mysqld start (code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/mysqld.service Anybody have any ideas as to why 'enable' doesn't work?

    Read the article

  • Copying files to Truecrypt file container hangs

    - by Wagner Maestrelli
    I have a dual boot installation with Windows 7 Ultimate (32-bits, NTFS file sytem) and Ubuntu 10.10 (32-bits, ext4 file system). I have installed the version 7.0a of Truecrypt in both Operating Systems. Located in the Windows 7 HDD I have a 150 GB encrypted file container. It is a standard and dynamic file container, which means it's not hidden and uses a sparse file. This file was created using the Windows version of the Truecrypt program. When I logon in Windows the container is mounted as the drive E: and everything works fine! In Ubuntu the Windows's NTFS file system is automaticaly mounted after I logon. I've configured that using the ntfs-config package. In my ~/.profile I have this line to mount the truecrypt's file container: truecrypt /media/7EDEBCFADEBCABB1/Users/Wagner/hd/hd.tc /media/truecrypt1 The file container is mounted after the logon without any problem. I can access it, copy files to/from it, etc. But when I try do copy relatively large amounts of data (~50 MB) to it via nautilus or cp -R, it starts the copy, copies some data until certain point and then it just hangs! The progress bar does not move anymore and nothing happens. There is no error, it just hangs and that's it. I have to kill the process myself. This problem does not happen in Windows: I can copy very large amounts of data to the container and it works great. But in Ubuntu the problem always happens! I mean, whenever I try to copy a bunch of files together the copy process hangs. Does anyone ever faced this problem? Can anyone help? Thanks!

    Read the article

  • Where can I download copies of a Windows XP ISO image with Internet Explorer 6 or Internet Explorer 7 for VirtualBox?

    - by Andrew Arrow
    I have Windows 7 Professional hosting Ubuntu inside VirtualBox for my development machine. To test my site, I run Internet Explorer and hit my Ubuntu box. This works great for Internet Explorer 8, the default browser on this Windows machine. I also want to run another VM with a copy of Windows XP with Internet Explorer 6 or Internet Explorer 7. Where can I download ISO image files of old copies of Windows XP? I've looked in Internet Explorer Application Compatibility VPC Image and these only run in Virtual PC/XP Mode which won't run while VirtualBox is running. If I have to run VirtualBox (can't work without Ubuntu running the site), is there any way to test Internet Explorer 6, Internet Explorer 7, and Internet Explorer 8 from the same Windows 7 machine?

    Read the article

  • EloTouch touchscreen suspends correctly but does not come out of standby on Ubuntu 10.04

    - by Ton van den Heuvel
    I am using an EloTouch touchscreen on a minimal Ubuntu 10.04 installation. I have a bare Xserver running without any desktop environment, just an xterm. The touchscreen is working great, but there is still one small problem. As soon as the touchscreen goes to standby, it is not coming out of standby when touching the screen. Using a keyboard or mouse does get it out of standby though. I am looking for any hints or directions to a cause of this problem. Is this an x.org configuration problem? A driver problem? Is this a known problem with touchscreens in general? Any pointers are welcome. The driver I am using is an unreleased EloTouch driver (3.5.0). I received it through a reseller who can not give me any technical information unfortunately.

    Read the article

  • Visual Studio 2010 Is Here!

    - by Bill Evjen
    I think back to the days of the first versions of Visual Studio (when it was called Visual Studio .NET, remember?) and I think about how far Microsoft has come with this IDE. It really is the best IDE on the market. There is so much to this IDE it is amazing. It now can really handle managing your complete software application development lifecycle. For me, it is (besides Windows 7) the best and most successful product Microsoft has developed. You can obviously get this now and it is available on MSDN and some other places: MSDN Visual Studio Trial Editions Visual Studio 2010 Express Editions (free) You will also find great info at the Visual Studio Developer Center. Some other interesting tidbits of info: JetBrain’s ReSharper 5.0 has been released for VS2010 Oracle will have the new Oracle Dev Tools for VS2010 within one month - http://bit.ly/9gC9NE Visual Studio 64-bit - Why there is no 64-bit version of VS - http://bit.ly/dhhwAj In installing this version of Visual Studio, if you have been working on the previous RC builds, then you are going to want to uninstall these previous editions of the 2010 product. You can do this through the Add Remove Programs dialog and you are going to want to select the appropriate item from the long list of Visual Studio items. You are then going to want to step through the Visual Studio dialog (it will seem as if you are installing it again) – and you will then come to a point where you can select the option to Uninstall the entire application. If you have installed the Silverlight 4 RC stuff, then you are also going to want to uninstall this and you are also going to want to uninstall the “Update for Visual Studio 2010 (KB976272)” before installing Silverlight RC2 – which you can find on www.silverlight.net. Technorati Tags: vs2010,.net,visualstudio,microsoft

    Read the article

  • One network, two macbooks, one is fast and the other is slow

    - by Brendan
    I really need help for my friend. I know next to nothing about computers. My roommate and I both have macbook pros from the same year running OS X, are both connecting wirelessly to the same xfinity wifi, and while mine runs perfectly fine, my roommate complains that his works very slowly and times out every few seconds. I can't seem to figure out why this is. He is trying to get me to switch internet providers because he is convinced that it is their problem, but this cannot possibly be the issue since it works great on mine. He has an xbox hooked up to the wifi that he says also works poorly. I really can't see switching providers given that I am experiencing absolutely zero problems. How can I help my friend?

    Read the article

  • How can I find and remove 6to4 from my system?

    - by Kelley
    Last week I installed Miredo and configured my system to handle IPv6 through 6to4 tunneling. It was easy and it worked well. So I decided I'd give Hurricane Electric's IPv6 connection a try. I've had a lot to learn, and I thought I had it all running (with a great deal of help from a very patient person at Hurricane: my LinkSys E3200 didn't like IPv6). But now, when all should be good, after I uninstalled Miredo and Teredo and whatever else, I find that there is "6to4 tunneling - another automatic tunneling," which I need to remove from my box. But I have no idea where or what it might be. Connected to my computer are a couple printers, an external hard drive, and a router (which has no settings for IPv6). All of these are, I think, innocent in this matter. So, how can I get rid of 6to4 tunneling, when I don't even know where it is? Is there someplace to look and find out what's going on? I'm pretty new to Linux and Ubuntu.

    Read the article

  • The OTN Lounge at JavaOne

    - by Tori Wieldt
    This year, the Oracle Technology Network Lounge at JavaOne will be in the Hilton Ballroom, right in the center of the JavaOne DEMOgrounds. We'll have Java experts, community members and OTN staff to answer your questions. We've also even created a "Mini Theater" for casual demos from community members (and you too, if you ask nicely and we can fit you in). We'll have a detailed schedule up soon. We're waiting for you! Tori Wieldt (@Java) will be in the booth, doing interviews for the Youtube/Java channel. Sonya Barry (@Javanetbuzz) will be around with the Java.net experts. Yolande Poirier will be there to discuss Making the Future Java for the next generation of Java developers. What would the lounge be without swag? Scan your badge each day for a raffle of great prizes, and of course, we'll have OTN T-shirts and some surprises throughout the week. Follow @JavaOneConf for details and updates. The Java DEMOgrounds will show you the latest in Java technologies, from team members who create and maintain Java, including: Recent and upcoming features for Java SE GlassFish Server Open Source Edition Java EE in Action Next-Generation Applications Java EE 7, HTML5, WebSockets, Caching JavaFX: The Rich Client Platform Rich, Compelling UI with JavaFX on Embedded Systems Java ME Embedded: Small, Intelligent, Connected Cutting-Edge JDK 7 and Java EE 6 Support with NetBeans Oracle Eclipse Projects Come by, find a couch, charge your laptop and meet old and new friends.

    Read the article

  • Is my system good enough for Hotmail Junk Mail Reporting Program? JMRP

    - by Marius
    Hello there! :) Thank you for a great website! I am interested in Hotmails Junk Mail Reporting Program (JMRP). One of the requirements they have are (translated from Norwegian to English), and I wonder if I qualify: Is the IP-address you registered subject to the company name/domain name? Or do you have your own sending rights from the IP address via the hosting company (that you do not share with other senders) We ask that you attach documents supporting this. These are my details: host: smtp.sharedhostingcompany.com username: username for my email account password: my private password. email address: [email protected] Is this what they require? Thank you for your time. Kind regards, Marius

    Read the article

  • A story from SQLvdb and Idera

    - by Peter Larsson
    A year or so back, I struggled with some consistency problems so I figured out I needed a way to "mount" backup files as a virtual database. At the time (SQL Server 2005 and SQL Server 2008) my choice fell on Idera's SQLvdb because it felt easy enough to use. I used it a few times and it worked great. Some time later we upgraded to SQL Server 2008R2 and I didn't use SQLvbd for a long time. Until yesterday... I was upset that suddenly SQLvbd took more than 2 hours to mount the backup file (if it succeeded at all). I uninstalled the application and went for lunch. After lunch, I decided to give SQLvbd another chance so I emailed their tech support and got a response within 30 minutes or so. Now, since I am a SQL Server MVP, they gave me another serial number than my first and I downloaded and installed a newer version. But also this version was really slow. I emailed back to them with the additional information they requested and to my surprise I had got an email this morning when I came back to work, where Idera explained some of the issues (bugs) and asked my to test a newer version. I did, and now a fresh mount of a 100GB database (compressed to 20GB with native compression) located on our SAN takes less than 6 minutes! Thank you. //Peter

    Read the article

  • Changing Career to Game Development

    - by Don Carleone
    I m enthusiastic about and ready to shifting my career to Game Development sector, but before that I wonder some situations, I m now working as Senior .net programmer, i can only write code in c# right now, but i started to learn c++, I m computer engineer so before I know how to write in C but I didnt work with big projects, I wrote "Game of Life" before with C and used only Linked List DataStructure becouse of pushed my limits. But now I m thinking to shift Game Development, I love to play Console Games, I respect people who works about that business. But I just wonder, I see a lot of great developers who write codes with C++ and I ask myself that guys dont think to join Game Industry so why I think I can join! is that True? I dont live in USA or big country like. I live in a poor country, and here is no any Game Development Company, so I have to move to USA for working that job. So can you tell me if I start to learn something (c++,game enginees,physic enginees,3d math etc.) right now and working my usual job, after 7-8 month is it good time to move and finding a job about Game development in USA as junior game developer? is that possible? or is this just a dream? I realy need your advices. You can give down vote about that no problem, at least one advice can help me in my life.

    Read the article

  • C#: Handling Notifications: inheritance, events, or delegates?

    - by James Michael Hare
    Often times as developers we have to design a class where we get notification when certain things happen. In older object-oriented code this would often be implemented by overriding methods -- with events, delegates, and interfaces, however, we have far more elegant options. So, when should you use each of these methods and what are their strengths and weaknesses? Now, for the purposes of this article when I say notification, I'm just talking about ways for a class to let a user know that something has occurred. This can be through any programmatic means such as inheritance, events, delegates, etc. So let's build some context. I'm sitting here thinking about a provider neutral messaging layer for the place I work, and I got to the point where I needed to design the message subscriber which will receive messages from the message bus. Basically, what we want is to be able to create a message listener and have it be called whenever a new message arrives. Now, back before the flood we would have done this via inheritance and an abstract class: 1:  2: // using inheritance - omitting argument null checks and halt logic 3: public abstract class MessageListener 4: { 5: private ISubscriber _subscriber; 6: private bool _isHalted = false; 7: private Thread _messageThread; 8:  9: // assign the subscriber and start the messaging loop 10: public MessageListener(ISubscriber subscriber) 11: { 12: _subscriber = subscriber; 13: _messageThread = new Thread(MessageLoop); 14: _messageThread.Start(); 15: } 16:  17: // user will override this to process their messages 18: protected abstract void OnMessageReceived(Message msg); 19:  20: // handle the looping in the thread 21: private void MessageLoop() 22: { 23: while(!_isHalted) 24: { 25: // as long as processing, wait 1 second for message 26: Message msg = _subscriber.Receive(TimeSpan.FromSeconds(1)); 27: if(msg != null) 28: { 29: OnMessageReceived(msg); 30: } 31: } 32: } 33: ... 34: } It seems so odd to write this kind of code now. Does it feel odd to you? Maybe it's just because I've gotten so used to delegation that I really don't like the feel of this. To me it is akin to saying that if I want to drive my car I need to derive a new instance of it just to put myself in the driver's seat. And yet, unquestionably, five years ago I would have probably written the code as you see above. To me, inheritance is a flawed approach for notifications due to several reasons: Inheritance is one of the HIGHEST forms of coupling. You can't seal the listener class because it depends on sub-classing to work. Because C# does not allow multiple-inheritance, I've spent my one inheritance implementing this class. Every time you need to listen to a bus, you have to derive a class which leads to lots of trivial sub-classes. The act of consuming a message should be a separate responsibility than the act of listening for a message (SRP). Inheritance is such a strong statement (this IS-A that) that it should only be used in building type hierarchies and not for overriding use-specific behaviors and notifications. Chances are, if a class needs to be inherited to be used, it most likely is not designed as well as it could be in today's modern programming languages. So lets look at the other tools available to us for getting notified instead. Here's a few other choices to consider. Have the listener expose a MessageReceived event. Have the listener accept a new IMessageHandler interface instance. Have the listener accept an Action<Message> delegate. Really, all of these are different forms of delegation. Now, .NET events are a bit heavier than the other types of delegates in terms of run-time execution, but they are a great way to allow others using your class to subscribe to your events: 1: // using event - ommiting argument null checks and halt logic 2: public sealed class MessageListener 3: { 4: private ISubscriber _subscriber; 5: private bool _isHalted = false; 6: private Thread _messageThread; 7:  8: // assign the subscriber and start the messaging loop 9: public MessageListener(ISubscriber subscriber) 10: { 11: _subscriber = subscriber; 12: _messageThread = new Thread(MessageLoop); 13: _messageThread.Start(); 14: } 15:  16: // user will override this to process their messages 17: public event Action<Message> MessageReceived; 18:  19: // handle the looping in the thread 20: private void MessageLoop() 21: { 22: while(!_isHalted) 23: { 24: // as long as processing, wait 1 second for message 25: Message msg = _subscriber.Receive(TimeSpan.FromSeconds(1)); 26: if(msg != null && MessageReceived != null) 27: { 28: MessageReceived(msg); 29: } 30: } 31: } 32: } Note, now we can seal the class to avoid changes and the user just needs to provide a message handling method: 1: theListener.MessageReceived += CustomReceiveMethod; However, personally I don't think events hold up as well in this case because events are largely optional. To me, what is the point of a listener if you create one with no event listeners? So in my mind, use events when handling the notification is optional. So how about the delegation via interface? I personally like this method quite a bit. Basically what it does is similar to inheritance method mentioned first, but better because it makes it easy to split the part of the class that doesn't change (the base listener behavior) from the part that does change (the user-specified action after receiving a message). So assuming we had an interface like: 1: public interface IMessageHandler 2: { 3: void OnMessageReceived(Message receivedMessage); 4: } Our listener would look like this: 1: // using delegation via interface - omitting argument null checks and halt logic 2: public sealed class MessageListener 3: { 4: private ISubscriber _subscriber; 5: private IMessageHandler _handler; 6: private bool _isHalted = false; 7: private Thread _messageThread; 8:  9: // assign the subscriber and start the messaging loop 10: public MessageListener(ISubscriber subscriber, IMessageHandler handler) 11: { 12: _subscriber = subscriber; 13: _handler = handler; 14: _messageThread = new Thread(MessageLoop); 15: _messageThread.Start(); 16: } 17:  18: // handle the looping in the thread 19: private void MessageLoop() 20: { 21: while(!_isHalted) 22: { 23: // as long as processing, wait 1 second for message 24: Message msg = _subscriber.Receive(TimeSpan.FromSeconds(1)); 25: if(msg != null) 26: { 27: _handler.OnMessageReceived(msg); 28: } 29: } 30: } 31: } And they would call it by creating a class that implements IMessageHandler and pass that instance into the constructor of the listener. I like that this alleviates the issues of inheritance and essentially forces you to provide a handler (as opposed to events) on construction. Well, this is good, but personally I think we could go one step further. While I like this better than events or inheritance, it still forces you to implement a specific method name. What if that name collides? Furthermore if you have lots of these you end up either with large classes inheriting multiple interfaces to implement one method, or lots of small classes. Also, if you had one class that wanted to manage messages from two different subscribers differently, it wouldn't be able to because the interface can't be overloaded. This brings me to using delegates directly. In general, every time I think about creating an interface for something, and if that interface contains only one method, I start thinking a delegate is a better approach. Now, that said delegates don't accomplish everything an interface can. Obviously having the interface allows you to refer to the classes that implement the interface which can be very handy. In this case, though, really all you want is a method to handle the messages. So let's look at a method delegate: 1: // using delegation via delegate - omitting argument null checks and halt logic 2: public sealed class MessageListener 3: { 4: private ISubscriber _subscriber; 5: private Action<Message> _handler; 6: private bool _isHalted = false; 7: private Thread _messageThread; 8:  9: // assign the subscriber and start the messaging loop 10: public MessageListener(ISubscriber subscriber, Action<Message> handler) 11: { 12: _subscriber = subscriber; 13: _handler = handler; 14: _messageThread = new Thread(MessageLoop); 15: _messageThread.Start(); 16: } 17:  18: // handle the looping in the thread 19: private void MessageLoop() 20: { 21: while(!_isHalted) 22: { 23: // as long as processing, wait 1 second for message 24: Message msg = _subscriber.Receive(TimeSpan.FromSeconds(1)); 25: if(msg != null) 26: { 27: _handler(msg); 28: } 29: } 30: } 31: } Here the MessageListener now takes an Action<Message>.  For those of you unfamiliar with the pre-defined delegate types in .NET, that is a method with the signature: void SomeMethodName(Message). The great thing about delegates is it gives you a lot of power. You could create an anonymous delegate, a lambda, or specify any other method as long as it satisfies the Action<Message> signature. This way, you don't need to define an arbitrary helper class or name the method a specific thing. Incidentally, we could combine both the interface and delegate approach to allow maximum flexibility. Doing this, the user could either pass in a delegate, or specify a delegate interface: 1: // using delegation - give users choice of interface or delegate 2: public sealed class MessageListener 3: { 4: private ISubscriber _subscriber; 5: private Action<Message> _handler; 6: private bool _isHalted = false; 7: private Thread _messageThread; 8:  9: // assign the subscriber and start the messaging loop 10: public MessageListener(ISubscriber subscriber, Action<Message> handler) 11: { 12: _subscriber = subscriber; 13: _handler = handler; 14: _messageThread = new Thread(MessageLoop); 15: _messageThread.Start(); 16: } 17:  18: // passes the interface method as a delegate using method group 19: public MessageListener(ISubscriber subscriber, IMessageHandler handler) 20: : this(subscriber, handler.OnMessageReceived) 21: { 22: } 23:  24: // handle the looping in the thread 25: private void MessageLoop() 26: { 27: while(!_isHalted) 28: { 29: // as long as processing, wait 1 second for message 30: Message msg = _subscriber.Receive(TimeSpan.FromSeconds(1)); 31: if(msg != null) 32: { 33: _handler(msg); 34: } 35: } 36: } 37: } } This is the method I tend to prefer because it allows the user of the class to choose which method works best for them. You may be curious about the actual performance of these different methods. 1: Enter iterations: 2: 1000000 3:  4: Inheritance took 4 ms. 5: Events took 7 ms. 6: Interface delegation took 4 ms. 7: Lambda delegate took 5 ms. Before you get too caught up in the numbers, however, keep in mind that this is performance over over 1,000,000 iterations. Since they are all < 10 ms which boils down to fractions of a micro-second per iteration so really any of them are a fine choice performance wise. As such, I think the choice of what to do really boils down to what you're trying to do. Here's my guidelines: Inheritance should be used only when defining a collection of related types with implementation specific behaviors, it should not be used as a hook for users to add their own functionality. Events should be used when subscription is optional or multi-cast is desired. Interface delegation should be used when you wish to refer to implementing classes by the interface type or if the type requires several methods to be implemented. Delegate method delegation should be used when you only need to provide one method and do not need to refer to implementers by the interface name.

    Read the article

  • What are the best code-less website design sites available?

    - by Ken Pespisa
    I'm looking for an alternative to www.squarespace.com. Squarespace is great, but leans slightly toward the social networking industry. I'm looking for a simple way to build Web sites for small businesses. The criteria is the following: Requires no programming knowledge. No software to download - all design and maintenance can be done via browser Has a good selection of templates and layouts Essentially I'm looking for the features within Typepad.com or WordPress.com, but instead of focusing around a blog it would help build a more traditional Web site.

    Read the article

  • SOA Partner Community Workspace

    - by JuergenKress
    To share the latest information with the community we use the SOA Community Workspace (SOA Community membership required). At the workspace you can find training material, product presentations in ppt format, product roadmaps, sales kits, market kits, training calendar and many additional information. Please use this content in the spirit of our partnership, and do not share external confidential material (be aware of the OTN NDA). The workspace is organized by product categories in folders e.g. SOA or Business Process Management or Applications & Fusion Middleware. You can also use tags to navigate within the workspace. For large downloads we do recommend to map the workspace as a network drive or to use the ftp functions. Please be very careful when you use the workspace, as we granted everybody full access including to add and delete documents. Please do NOT delete any content. Each action creates e-mail alerts for subscribed users. You can unsubscribe these alerts at the admin page à navigate to the All Workspaces tab à click on the workspace à switch the subscription off. It would be great if you can continue to share your best practice and knowledge within the community. Therefore we also created the folder Presentations from Partners. SOA & BPM Partner Community For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center. Blog Twitter LinkedIn Facebook Wiki Mix Forum Technorati Tags: Workspace,SOA Community,Oracle SOA,Oracle BPM,Community,OPN,Jürgen Kress

    Read the article

  • Is there a canonical book for learning Java as an experienced developer?

    - by Steven Elliott Jr
    I have been a .NET developer now for about the past 5/6 years give or take. I have never done any professional Java development and the last time I really touched it was probably back in college. I have been toying with the Scala language a little bit but nothing serious. Recently, I've been offered an opportunity to do some pretty cool work, but using Java instead of .NET. I think I can get by alright with my current skill set, meaning I already know how to program well and am familiar with languages such as C# and C++, etc. So, the syntax and all that language stuff are really not a problem. What I need is a really good reference book and a book about how to think in Java. Each language/Framework/Stack tries to address things a certain way and I'm sure Java is no different. What are some great Java books that you simply can't live without? Are there any books that talk about the most important parts of Java that must be understood before all else? As a side note, I will be doing mostly Java web development. Not really 100% on what types of stuff they are using for persistence, framework, server, etc.

    Read the article

< Previous Page | 224 225 226 227 228 229 230 231 232 233 234 235  | Next Page >