Search Results

Search found 24207 results on 969 pages for 'anonymous users'.

Page 587/969 | < Previous Page | 583 584 585 586 587 588 589 590 591 592 593 594  | Next Page >

  • Skype companywide global contacts list

    - by Martin
    We are a medium sized company based across several sites and with a number of home workers. We have more or less settled on Skype as our defacto method of communication. At the moment the only pain is ensuring that everybody has all the other employees added to their contact list. Can be a real pain when a new employee starts and they have to send details to everyone else and vice versa. Is there a solution that allows us to manage a central contacts list that we can push out to new/existing users?

    Read the article

  • ICMP Data Field Modified - What does it Mean?

    - by Lucretius
    Normal ICMP Data fields are composed of a pretty standard 32 byte string of alphabet characters. abcdefghijklmnopqrstuvwabcdefghi I have captured a series of ICMP echo requests using WireShark with a modified Data field and I have no idea what it means. (Underscores represent spaces.) abcdefghijklmnopprstuvwxyzabcdefghi abcdefghijklmnoparstuvwxyzabcdefghi __abcdefghijklmnopsrstuvwxyzabcdefghi __abcdefghijklmnopsrstuvwxyzabcdefghi __abcdefghijklmnopwrstuvwxyzabcdefghi __abcdefghijklmnopdrstuvwxyzabcdefghi__ Note: The position of the "q" character The addition of "xyz" The addition of spaces before and after the payload When you look at the position of "q" horizontally it spells "passwd" which is a Linux/Unix command for changing a users password. Any ideas?

    Read the article

  • Report Books and Parameters with Telerik Reporting

    Telerik Reporting provides a simple, yet powerful, component called the ReportBook that allows multiple reports to be combined into one. Doing so makes displaying, printing, and exporting multiple reports a much simpler task for end users. Providing this type of functionality does leave one question though, "How are report parameters handled?" This entry will focus on providing the answers to that simple question. Click here to download the sample code so you can follow along. Creating a ReportBook ReportBooks are supported in all three environments the ReportViewer supports, WinForms, Silverlight, and ASP.NET. Adding a ReportBook to each of these environments is very similar. This example focuses on using a ReportBook with the WinForms ReportViewer. Create a WinForms Application Add a reference to the project containing the reports. Drag a ReportViewer from the ToolBox into the designer. Drag a ReportBook from the ToolBox into the designer. A dialog will be displayed asking for the reports to be included in the ReportBook....Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • C# Role Provider for multiple applications

    - by Juventus18
    I'm making a custom RoleProvider that I would like to use across multiple applications in the same application pool. For the administration of roles (create new role, add users to role, etc..) I would like to create a master application that I could login to and set the roles for each additional application. So for example, I might have AppA and AppB in my organization, and I need to make an application called AppRoleManager that can set roles for AppA and AppB. I am having troubles implementing my custom RoleProvider because it uses an initialize method that gets the application name from the config file, but I need the application name to be a variable (i.e. "AppA" or "AppB") and passed as a parameter. I thought about just implementing the required methods, and then also having additional methods that pass application name as a parameter, but that seems clunky. i.e. public override CreateRole(string roleName) { //uses the ApplicationName property of this, which is set in web.config //creates role in db } public CreateRole(string ApplicationName, string roleName) { //creates role in db with specified params. } Also, I would prefer if people were prevented from calling CreateRole(string roleName) because the current instance of the class might have a different applicationName value than intended (what should i do here? throw NotImplementedException?). I tried just writing the class without inheriting RoleProvider. But it is required by the framework. Any general ideas on how to structure this project? I was thinking make a wrapper class that uses the role provider, and explicitly sets the application name before (and after) and calls to the provider something like this: static class RoleProviderWrapper { public static CreateRole(string pApplicationName, string pRoleName) { Roles.Provider.ApplicationName = pApplicationName; Roles.Provider.CreateRole(pRoleName); Roles.Provider.ApplicationName = "Generic"; } } is this my best-bet?

    Read the article

  • Is using something other than XML advisable for my configuration file?

    - by Earlz
    I have a small tool I'm designing which would require a configuration file of some sort. The configuration file in my case is really more of a database, but it needs to be lightweight, and if needed the end-user should find it easily editable. However, it also will contain a lot of things in it. (depending on certain factors, could be 1Mb or more) I've decided I'd rather use plain ol' text, rather than trying to use SQLite or some such. However, with using text, I also have to deal with the variety of formats. So far, my options are XML JSON Custom format The data in my file is quite simple consisting for the most part of key-value type things. So, a custom format wouldn't be that difficult... but I'd rather not have to worry about writing the support for it. I've never seen JSON used for configuration files. And XML would bloat the file size substantially I think. (I also just has a dislike of XML in general). What should I do in this case? Factors to consider: This configuration file can be uploaded to a web service(so size matters) Users must be able to edit it by hand if necessary(ease of editing and reading matters) Must be able to generate and process automatically (speed doesn't matter a lot, but not excessively slow) The "keys" and "values" are plain strings, but must be escaped because they can contain anything. (unicode and escaping has to work easily)

    Read the article

  • Enable dtrace without sudo on Mac OS X?

    - by Juan
    How do I enable users to use dtrace on Mac OS X. I am trying to do the equivalent of strace on Linux, and I don't like running applications with elevated privileges. UPDATE Ok, the best I can tell. The only way to keep a nefarious application from ruining the system by debugging it is to. Attach to the process in a separate console Use sudo twice So that: sudo dtruss sudo -u myusername potentially_harmful_app I verified this with this short program: #include <iostream> #include <unistd.h> int main() { std::cout << "effective euid " << geteuid() << "\n"; } See this discussion for more info: http://discussions.apple.com/message.jspa?messageID=6430877

    Read the article

  • website not accessible with IIS6 while NAT is configured in Windows 2003

    - by Mohammed Rizwan
    I have Windows2003 server configured with IIS 6. Until now it was working fine, but since I enabled NAT for my users to access the internet via this server, the website becomes unavailable. Note that I have two nics on the server one is WAN and 2nd is for LAN. Both IPs are behind the firewall. If I stop the NAT then the website is available externally. I tried to search the answer in this forum but didn't find appropriate one or maybe didn't properly understand. I'll appreciate if anyone can help me sorting out this issue.

    Read the article

  • Can an LDAP query on AD provide the netbios domain name for a single account when using the Global Catalog?

    - by Kirk Liemohn
    I am using ADSI Edit to look at LDAP properties of a single user account in AD. I see properties such as userPrincipalName, but I do not see one for the fully qualified domain name (FQDN) or the netbios domain name. We will be setting up the Global Catalog (GC) to give us LDAP access to multiple domains and through configuration in an application we map LDAP properties to user profile properties within the application. With typical AD the FQDN and netbios domain name are the same for all users, but with the GC involved we need this additional information. We really only need the netbios domain name (the FQDN is not good enough). Maybe there is a LDAP query that can be done to request this information from a more top-level object in AD?

    Read the article

  • Java 6.0 Virtual Machine re-caches application on every load

    - by David Neale
    I have a Java application which is loaded and cached by the JRE and for most users it only needs to cache once unless the application software has changed. However, I have one computer that caches the entire application every time they load it. It is not the version of the JRE, I have that running on other machines. It also works on this machine if logged in as a local admin, just not as a standard user. Does anybody have any ideas on what might be causing this?

    Read the article

  • Windows Live Writer fails to start

    - by Albert Bori
    I installed windows live writer and configured it to connect to my xmlrpc enabled blog engine. After doing so, it threw an unrecoverable error and closed down. After attempting to restart windows live writer, it throws the following exception each time: Description: Windows Live Writer has encountered a problem: Invalid URI: The hostname could not be parsed. Problem signature: Problem Event Name: WindowsLiveWriter Problem Signature 01: CreateThis Problem Signature 02: 115 Problem Signature 03: System.UriFormatException Problem Signature 04: 15.4.3555.308 Problem Signature 05: 2.0.50727.5456 Problem Signature 06: Windows Live Writer OS Version: 6.1.7601.2.1.0.256.1 Locale ID: 1033 Since I was unable to start windows live writer at all, I tried uninstalling it and removing all files associated with it in my "C:/users/[username]/appdata" folder. After that, I re-installed it and still get the error every time I try to launch the application. Does anyone know how I can get around this?

    Read the article

  • application monitoring tools

    - by Shachar
    we're an ISV about to deploy our SaaS application over the internet to our end users, and are currently looking for an application monitoring solution. In addition to monitoring the usual OS-level suspects (I/O, disk space, logs, CPU, RAM, swapping, etc.), we're also looking to monitor, alert and report on internal application events, conditions, and counters (think queue size for internal service, or latency of a service we're getting from a third party via custom APIs). We're started looking at Nagios, Zenoss, etc., but found out those do only low-level stuff, and are currently looking at MOM and ManageEngine. Still, they are far from being an custom app monitoring tool. So - do you have anything to suggest?

    Read the article

  • Architecture behind live streaming [on hold]

    - by l19
    I'm a Comp Sci undergraduate student, and I'm currently trying to understand the architecture behind streaming. I hear several terms and I'm not quite sure how they are related (e.g. streaming, broadcasting, ingesting, etc.) Is there a blog post or book that explains: How it all works in a high-level view (the workflow) The architecture (i.e. I capture content using my camera and want to display it real-time to an audience. I imagine that the content will be transferred to a server, but how does that server transmit the information to several users simultaneously?) Thanks!

    Read the article

  • Shared Database Servers

    - by shivanshu.upadhyay
    As more enterprises consolidate their database environments to support private cloud initiatives, ISVs will have to deal with sceanrios where they need to run on a shared powerful database server like Exadata. Some ISVs are concerned about meeting SLAs for performance in a shared environment. Outside the virtualization world, there are capabilities of Oracle Database which can be used to prevent resource contention and guarantee SLA. These capabilities are - 1) Instance Caging - This guarantees the CPU allocated or limits the maximum number of CPUs (and so the number of Oracle processes) that an instance of Database can use simultaneously. With this feature, ISVs can be assured that their application is allocated adequate CPUs even if the database server is shared with other applications. 2) CPU Resource Allocation with Database Resource Manager - This allocates percentages of CPU time to different users and applications within a database. ISVs can use this feature to ensure that priority user or workloads within their application get CPU resources over other requirements. 3) Exadata I/O Resource Manager - The Database Resource Manager feature in Oracle Database 11g has been enhanced for use with Exadata. This allows the sharing of storage between databases without fear of one database monopolizing the I/O bandwidth and impacting the performance of the other databases sharing the storage. This can be used to ensure that I/O does not become a performance bottleneck due to poor design of other applications sharing the same server.

    Read the article

  • Firefox on wine crashes on startup on Ubuntu

    - by Iam Zesh
    First, let's explain why I want Firefox under wine, and not the Firefox that is shipped out of the box with Ubuntu. I want to use Firefox under wine because I want to use the Widevine addon, which is "at this time not available for linux". Here is what I did so far to install and use Firefox on wine. On Ubuntu 12.04 LTS, I just installed wine like that: sudo apt-get update; sudo apt-get install wine Then I downloaded the windows installer for Firefox from the mozilla website. I ran the Firefox Setup 25.0.exe file with wine but at the end of the install process when launching Firefox, I got a window notifying me that the program at crashed. I ran Firefox from the command line with wine, to get an idea of what could have went wrong: wine /home/myUser/.wine/drive_c/Program\ Files/Mozilla\ Firefox/firefox.exe fixme:heap:HeapSetInformation (nil) 1 (nil) 0 fixme:process:SetProcessDEPPolicy (1): stub fixme:iphlpapi:NotifyAddrChange (Handle 0x368e8fc, overlapped 0x368e8e0): stub fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} 0x44fe6f8 0x44fe6b8 0x44fe6e4) Stub! fixme:advapi:RegisterTraceGuidsW (0x1b0e290, 0x39ead80, {509962e0-406b-46f4-99ba-5a009f8d2225}, 3, 0x3974d00, (null), (null), 0x39eadb0,): stub fixme:winsock:WSCGetProviderPath ({e70f1aa0-ab8b-11cf-8ca3-00805f48a192} 0x44fe6f8 0x44fe6b8 0x44fe6e4) Stub! fixme:winsock:WSCGetProviderPath ({11058240-be47-11cf-95c8-00805f48a192} 0x44fe6f8 0x44fe6b8 0x44fe6e4) Stub! fixme:winsock:WSCGetProviderPath ({11058241-be47-11cf-95c8-00805f48a192} 0x44fe6f8 0x44fe6b8 0x44fe6e4) Stub! fixme:winsock:WSCGetProviderPath ({11058241-be47-11cf-95c8-00805f48a192} 0x44fe6f8 0x44fe6b8 0x44fe6e4) Stub! fixme:ntdll:NtLockFile I/O completion on lock not implemented yet fixme:advapi:SetNamedSecurityInfoW L"C:\\users\\myUser\\Application Data\\Mozilla\\Firefox\\Profiles\\cn4oy6kh.default\\extensions.ini" 1 536870916 (nil) (nil) 0x13d40c (nil) fixme:imm:ImmReleaseContext (0x20022, 0x13e850): stub fixme:win:EnumDisplayDevicesW ((null),0,0x32ee18,0x00000000), stub! fixme:shell:ApplicationAssociationRegistration_QueryCurrentDefault (0x143b50)->(L"webcal", 1, 1, 0x32c7a0) fixme:shell:ApplicationAssociationRegistration_QueryCurrentDefault (0x143b50)->(L"ircs", 1, 1, 0x32c7a0) fixme:shell:ApplicationAssociationRegistration_QueryCurrentDefault (0x143b50)->(L"mailto", 1, 1, 0x32c7a0) fixme:shell:ApplicationAssociationRegistration_QueryCurrentDefault (0x143b50)->(L"irc", 1, 1, 0x32c7a0) fixme:alsa:AudioSessionControl_SetGroupingParam (0x153050)->({7b0a93ee-05e7-4576-9cc5-64fdf201f303}, (null)) - stub fixme:alsa:AudioSessionControl_SetGroupingParam (0x153050)->({00000000-0000-0000-0000-000000000000}, (null)) - stub fixme:alsa:AudioSessionControl_UnregisterAudioSessionNotification (0x153050)->(0x6311880) - stub wine: Call from 0x7b839cf2 to unimplemented function dwmapi.dll.DwmGetCompositionTimingInfo, aborting fixme:dbghelp:elf_search_auxv can't find symbol in module Unfortunately I don't know what to do from there on...

    Read the article

  • Linux Router - Share bandwidth per IPs with current active connections

    - by SRoe
    We have a Linux machine running as a custom router, currently utilising Shorewall. This sits between our incoming internet connection and the internal LAN. What we would like to achieve is 'fair use' of the bandwidth on a per IP basis. If only one person currently has an active connection then they get 100% utilisation of the line. However if 20 people have active connections then they should each get 5% utilisation of the line. This should be irrespective of the number of connections held by each user. For example, say we have two users, Bill and Ted, that both have active connections. Bill has a single active connection while Ted has ten active connections. Bill should get 50% utilisation for his single connections whilst Ted should get 5% utilisation for each of his ten connections, giving Ted a total utilisation of 50%.

    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

  • Configure IIS to rewrite IP Address to Site Name

    - by Bath Man
    So i've started my first web site from home, and I'm trying to get it up and running and google crawlable and the like, but I can't seem to figure out how to have my site name returned in the address bar instead of my IP address. I've purchased a domain name for my site on Godaddy and then set it to redirect to my site. When you type in the domain name, you get redirected to http://0.0.0.0/default.aspx (not my real IP obviously), and that stays in the user's address bar. In order to fix that temporarily, I've set up masking on Go Daddy which keeps the URL in the address bar, but just shows my website in a frame. This is fine for users visiting the site, however any kind of automated robot such as GoogleBot cannot discover my content because of the frame. I've looked into ISAPI filters and server-site-rewriting, and the like... but I just can't quite figure out how to do what I need it to do. Any simple suggestions or links would be appreciated.

    Read the article

  • Windows Server 2003 Synchronize Not Sticking

    - by lkessler
    We have a Windows Server 2003. It had Raid running on 2 disks. One disk failed and the Raid Controller failed. We replaced the disk and controller and restored everything. No data was lost. The users of that server found that there were a number of directories that appeared empty. We found that from their machine, we could right-click on the directory and select "Synchronize" and the files in the directory would now be visible to them. However, when opening Internet Explorer and browsing the web and ftp'ing to a web site, the files in the directory would vanish. We would have to "Synchronize" them again to get them to reappear. What is going on to cause this need to Synchronize and then re-Synchronize again? What do we need to do to fix this so that the directories are permanently visible?

    Read the article

  • How to subscribe to a youtube feed from linux command line?

    - by Tim
    I want to subscribe to a youtube channel and automatically download new videos to my linux machine. I know I could do this e.g. with miro, but I will not watch the videos using Miro, want to choose the quality and would like to run it as a cronjob. It should be able to: know which feed entries are new and not download old entries resume (or at least redownload) failed/incomplete downloads from older sessions Are there any complete solutions for this? If not it would be enough for me (maybe even preferable) to just have a command line rss reader that remembers which entries have already been there and writes the new video urls (e.g. http://www.youtube.com/watch?v=FodYFMaI4vQ&feature=youtube_gdata from http://gdata.youtube.com/feeds/api/users/tedxtalks/uploads) into a file. I could then accomplish the rest using a bash script and youtube-dl. What would be programs usable for this purpose?

    Read the article

  • Installing Sql Server 2005 SP2 - Getting error on analysis services component

    - by Greg_the_Ant
    At first many of the components didn't install and I followed this workaround (fixing user/SID mappings in registry.) After that everything installed successfully except for analysis services. I am getting the exact same error message as before on analysis services. (Are there other users installed by sql server I'm not aware of perhaps?) Do you guys have any ideas? All of my searches seem to just point to that workaround above that I already did. Error message from log: Product : Analysis Services (MSSQLSERVER) Product Version (Previous): 1399 Product Version (Final) : Status : Failure Log File : C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Hotfix\OLAP9_Hotfix_KB921896_sqlrun_as.msp.log Error Number : 29528 Error Description : MSP Error: 29528 The setup has encountered an unexpected error while Setting Internal Properties. The error is: Fatal error during installation.

    Read the article

  • MS Office 2007 std, on a 2008R2 RDS session - additional language and proofing tools question

    - by dyasny
    Hi all, I have a terminal server, with a bunch of users running MS Office 2007 std in. Some of them have recently been asking for better multilanguage support. Since I'm in a select agreement, I've gone into the Volume Licensing Service Center and downloaded the following three ISOs: Office Multilanguage Packs 2007 (DVD) Office Multilanguage Packs 2007 (CD) Office Multilanguage Pack 2007 Service Pack 1 But having mounted the ISOs in my RDS host, I still can't install anything they contain. I am quite probably doing something wrong, or maybe I need to be running Office pro version? please F1

    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

  • 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

  • How to talk a client out of a Flash website?

    - by bunglestink
    I have recently been doing a bunch of web side projects through word of mouth recommendations only. Although I am much more a of a programmer than a designer by any means, my design skills are not terrible, and do not hate dealing with UI like many programmers. As a result, I find myself lured into a bunch of side projects where aside from a minimal back end for content administration, most of the programming is on front end interfaces (read javascript/css). By far the biggest frustration I have had is convincing clients that they do not want Flash. Aside the fact that I really do not enjoy Flash "development", there are many practical reasons why Flash is not desirable (lack of compatibility across devices, decreased client accessibility, plug-in requirements, increased development time, etc.). Instead of just flat out telling the clients "I will not build you a flash website", I would much rather use tactics to convince/explain to them that this is not what they actually want, ie: meet their requirements any better than standard html/css/js and distract users from their content. What kind of first hand experience do others have with this? How do you explain to someone that javascript/css/AJAX is usually a better option for most websites? Why do people want to use Flash so bad to begin with? This question pertains to clients who do not have any technical reasons for wanting flash, but just want it because they think it makes pretty websites.

    Read the article

  • links for 2011-02-03

    - by Bob Rhubart
    Webcast: Reduce Complexity and Cost with Application Integration and SOA Speakers: Bruce Tierney (Product Director, Oracle Fusion Middleware) and Rajendran Rajaram (Oracle Technical Consultant). Thursday, February 17, 2011. 10 a.m. PT/1 p.m. ET. (tags: oracle otn soa fusionmiddleware) William Vambenepe: The API, the whole API and nothing but the API William asks: "When programming against a remote service, do you like to be provided with a library (or service stub) or do you prefer 'the API, the whole API, nothing but the API?'" (tags: oracle otn API webservices soa) Gary Myers: Fluffy white Oracle clouds by the hour Gary says: "Pay-by-the-hour options are becoming more common, with Amazon and Oracle are getting even more intimate in the next few months. Yes, you too will be able to pay for a quickie with the king of databases (or queen if you prefer that as a mental image). " (tags: oracle otn cloudcomputing amazon ec2) Conversation as User Assistance (the user assistance experience) "To take advantage of the conversations on the web as user assistance, enterprises must first establish where on the spectrum their community lies." -- Ultan O'Broin (tags: oracle otn enterprise2.0 userexperience) Webcast: Oracle WebCenter Suite – Giving Users a Modern Experience Thursday, February 10, 2011. 11 a.m. PT/2 p.m. ET. Speakers: Vince Casarez, Vice President of Enterprise 2.0 Product Management, Oracle; Erin Smith, Consulting Practice Manager – Portals, Oracle; Robert Wessa, Consulting Technical Director,  Enterprise 2.0 Infrastructure, Oracle.  (tags: oracle otn enterprise2.0 webcenter)

    Read the article

< Previous Page | 583 584 585 586 587 588 589 590 591 592 593 594  | Next Page >