More Questions on Rules in General

Okay so here is my
situation.  I have a user that is wanting to use either Public folders
or a shared mailbox to automate a series of manual processes. 
For example:
A customer service rep(CSR) takes a call asking for x to be completed.
CSR than sends an email to [email protected][1]
with the subject of "x"
The email is received in the mailbox or public folder.
An exchange rule moves the incoming message to the "In-Process" Folder
A user in that department reviews and completes the request.
The user moves the item to a complete folder. Or selects a category
that would than fire another rule that would move it to complete.
This process would be spanning multiple users.
They would also be used for multiple processes and changed for the "subject of x,y,z".
The process cannot be dependent on one users mailbox so everything needs to happen server-side (unless client side rules are different on Public Folders).
My questions:
Is all of this even possible, I have made it basically work but only with client rules.
I don't think that we should be using our exchange server to do this, am I just flat out wrong?
I am struggling to convince the user that we just need to have a
workflow software (sharepoint or like it) to be doing this type of thing
as we will have much more control over the workflow.
Any other thoughts or ideas?
Anyone else using exchange to do these types of things?

Hi,
I'm afraid you can NOT achieve your requirement on your exchange server.
On the exchange server, You can only use transport rules to specify message to a particular mailbox, not a particular folder.
Thanks.
Niko Cheng
TechNet Community Support

Similar Messages

  • ColdFusion 11: custom serialisers. More questions than answers

    G'day:
    I am reposting this from my blog ("ColdFusion 11: custom serialisers. More questions than answers") at the suggestion of Adobe support:
    @dacCfml @ColdFusion Can you post your queries at http://t.co/8UF4uCajTC for all cfclient and mobile queries.— Anit Kumar Panda (@anitkumar85) April 29, 2014
    This particular question is not regarding <cfclient>, hence posting it on the regular forum, not on the mobile-specific one as Anit suggested. I have edited this in places to remove language that will be deemed inappropriate by the censors here. Changes I have made are in [square brackets]. The forums software here has broken some of the styling, but so be it.
    G'day:
    I've been wanting to write an article about the new custom serialiser one can have in ColdFusion 11, but having looked at it I have more questions than I have answers, so I have put it off. But, equally, I have no place to ask the questions, so I'm stymied. So I figured I'd write an article covering my initial questions. Maybe someone can answer then.
    ColdFusion 11 has added the notion of a custom serialiser a website can have (docs: "Support for pluggable serializer and deserializer"). The idea is that whilst Adobe can dictate the serialisation rules for its own data types, it cannot sensibly infer how a CFC instance might get serialised: as each CFC represents a different data "schema", there is no "one size fits all" approach to handling it. So this is where the custom serialiser comes in. Kind of. If it wasn't a bit rubbish. Here's my exploration thusfar.
    One can specify a custom serialiser by adding a setting to Application.cfc:
    component {     this.name = "serialiser01";     this.customSerializer="Serialiser"; }
    In this case the value - Serialiser - is the name of a CFC, eg:
    // Serialiser.cfccomponent {     public function canSerialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function canDeserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function serialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "SERIALISED";     }     public function deserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "DESERIALISED";     }     private function logArgs(required struct args, required string from){         var dumpFile = getDirectoryFromPath(getCurrentTemplatePath()) & "dump_#from#.html";         if (fileExists(dumpFile)){             fileDelete(dumpFile);         }         writeDump(var=args, label=from, output=dumpFile, format="html");     } }
    This CFC needs to implement four methods:
    canSerialize() - indicates whether something can be serialised by the serialiser;
    canDeserialize() - indicates whether something can be deserialised by the serialiser;
    serialize() - the function used to serialise something
    deserialize() - the function used to deserialise something
    I'm being purposely vague on those functions for a reason. I'll get to that.
    The first [issue] in the implementation here is that for the custom serialisation to work, all four of those methods must be implemented in the serisalisation CFC. So common sense would dictate that a way to enforce that would be to require the CFC to implement an interface. That's what interfaces are for. Now I know people will argue the merit of having interfaces in CFML, but I don't really give a [monkey's] about that: CFML has interfaces, and this is what they're for. So when one specifies the serialiser in Application.cfc and it doesn't fulfil the interface requirement, it should error. Right then. When one specifies the inappropriate tool for the job. What instead happens is if the functions are omitted, one will get erratic behaviour in the application, through to outright errors when ColdFusion goes to call the functions and cannot find it. EG: if I have canSerialize() but no serialize() method, CF will error when it comes to serialise something:
    JSON serialization failure: Unable to serialize to JSON.
    Reason : The method serialize was not found in component C:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/Serialiser .cfc.
    The error occurred inC:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/testBasic.c fm: line 4
    2 : o = new Basic();
    3 :
    4 : serialised = serializeJson(o);5 : writeDump([serialised]);
    6 :
    Note that the error comes when I go to serialise something, not when ColdFusion is told about the serialiser in the first place. This is just lazy/thoughtless implementation on the part of Adobe. It invites bugs, and is just sloppy.
    The second [issue] follows immediately on from this.
    Given my sample serialiser above, I then run this test code to examine some stuff:
    o = new Basic(); serialised = serializeJson(o); writeDump([serialised]); deserialised = deserializeJson(serialised); writeDump([deserialised]);
    So all I'm doing is using (de)serializeJson() as a baseline to see how the functions work. here's Basic.cfc, btw:
    component { }
    And the test output:
    array
    1
    SERIALISED
    array
    1
    DESERIALISED
    This is as one would expect. OK, so that "works". But now... you'll've noted I am logging the arguments each of the serialisation methods receives, as I got.
    Here's the arguments passed to canSerialize():
    canSerialize - struct
    1
    XML
    My reaction to that is: "[WTH]?" Why is canSerialize() being passed the string "XML" when I'm trying to serialise an object of type Basic.cfc?
    Here's the docs for canSerialize() (from the page I linked to earlier):
    CanSerialize - Returns a boolean value and takes the "Accept Type" of the request as the argument. You can return true if you want the customserialzer to serialize the data to the passed argument type.
    Again, back to "[WTH]?" What's the "Accept type" of the request? And what the hell has the request got to do with a call to serializeJson()? You might think that "Accept type" references some HTTP header or something, but there is no "Accept type" header in the HTTP spec (that I can find: "Hypertext Transfer Protocol -- HTTP/1.1: 14 Header Field Definitions"). There's an "Accept" header (in this case: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), and other ones like "Accept-Encoding", "Accept-Language"... but none of which contain a value of "XML". Even if there was... how would it be relevant to the question as to whether a Basic.cfc instance can be serialised? Raised as bug: 3750730.
    serialize() gets more sensible arguments:
    serialize - struct
    1
    https://www.blogger.com/nullserialize - component scribble.shared.git.blogExamples.coldfusion.CF11.customerserialiser.Basic
    2
    JSON
    So the first is the object to serialise (which surely should be part of the question canSerialize() is supposed to ask, and the format to serialise to. Cool.
    canDeserialize() is passed this:
    canDeserialize - struct
    1
    JSON
    I guess it's because it's being called from deserializeJson(), so it's legit to expect the input value is indeed JSON. Fair enough. (Note: I'm not actually passing it JSON, but that's beside the point here).
    And deserialize() is passed this:
    deserialize - struct
    1
    SERIALISED
    2
    JSON
    3
    [empty string]
    The first argument is the value to work on, and the second is the type of deserialisation to do. I have no idea what the third argument is for, and it's not mentioned directly or indirectly on that docs page. So dunno what the story is there.
    The next issue isn't a code-oriented one, but an implementation one: how the hell are we expected to work with this?
    The only way to work here is for each function to have a long array of IF/ELSEIF statements which somehow identify each object type that is serialisable, and then return true from canSerialise(), or in the case of serialize(), go ahead and do the serialisation. So this means this one CFC needs to know about everything which can be serialised in the entire application. Talk about a failure in "separation of concerns".
    You know the best way of determining if an object can be seriaslised? Ask it! Don't rely on something else needing to know. This can be achieved very easily in one of two ways:
    Check to see if the object implements a "Serializable" interface, which requires a serialize() method to exist.
    Or simply take the duck-typing approach: if a CFC implements a serialize() method: it can be serialised. By calling that method. Job done.
    Either approach would work fine, keeps things nicely encapsulated, and I see merits in both. And either make far more sense than Adobe's approach. Which is like something from the "OO Failures Special Needs" class.
    Deserialisation is trickier. Because it relies on somehow working out how to deserialise() an object. I'm not sure of the best approach here, but - again - how to deserialise something should be as close to the thing needing deserialisation as possible. IE: something in the serialised data itself which can be used to bootstrap the process.
    This could simply be a matter of specifying a CFC type at a known place in the serialised data. EG: Adobe stipulates that if the serialised data is JSON, and at the top level of the JSON is a key eg: type, and the value is an extant CFC... use that CFC's deserialize() method. Or it could look for an object which contains a type and a method, or whatever. But Adobe can specify a contract there.
    The only place I see a centralised CFC being relevant here is for a mechanism for handling serialised data that is neither a ColdFusion internal type, nor identifiable as above. In this case, perhaps they could provide a mechanism for a serialisation router, which basically has a bunch of routes (if/elseifs if need be) which contains logic as to how to work out how to deserialise the data. But it should not be the actual deserialiser, it should simply have the mechanism to find out how to do it. This is actually pretty much the same in operation as the deserialize() approach in the current implementation, but it doesn't need the canDeserialize() method (it can return false at the end of the routing), and it doesn't need to know about serialising. And also it's not the main mechanism to do the deserialisation, it's just the fall back if the prescribed approach hasn't been used.
    TBH, this still sounds a bit jerry-built, and I'm open for better suggestions. This is probably a well-trod subject in other languages, so it might be worth looking at how the likes of Groovy, Ruby or even PHP (eek!) achieve this.
    There's still another issue with the current approach. And this demonstrates that the Adobe guys don't actually work with either CFML applications or even modern websites. This approach only works for a single, stand-alone website (like how we might have done in 2001). What if I'm not in the business of building websites, but I build applications such as FW/1 or ColdBox or the like? Or any sort of "helper" application. They cannot use the current Adobe implementation of the customserializer. Why? Because the serialisation code needs to be in a website-specific CFC. There's no way for Luis to implement a custom serialiser in ColdBox (for example), and then have it work for someone using ColdBox. Because it relies on either editing Application.cfc to specify a different CFC, or editing the existing customSerializer CFC. Neither of which are very good solutions. This should have been immediately apparent to the Adobe engineer(s) implementing this stuff had they actually had any experience with modern web applications (which generally aren't just a single monolithic site, but an aggregation of various other sub applications). Equally, I know it's not a case of having thought about this and [I'm just missing something], because when I asked them the other day, at first they didn't even get what I was asking, but when I clarified were just like "oh yeah... um... err... yeah, you can't do that. We'll... have to... ah yeah". This has been raised as bug 3750731.
    So I declare the intent here valid, but the implementation to be more alpha- / pre-release- quality, not release-ready.
    Still: it could be easily deprecated and rework fairly easily. I've raised this as bug 3750732.
    Or am I missing something?
    Adam

    Yes, you can easily add additional questions to the Lookup.WebClient.Questions Lookup to allow some additional choices. We have added quite a few additional choices, we have noticed that removing them once people have selected them causes some errors.
    You can also customize the required number of questions to select when each user sets them up as well as the number required to be correct to reset the password, these options are in the System Configuration settings.
    If you need multi-language versions of the questions, you will also need to modify the appropriate language resource file in the xlWebApp.war file to provide the necessary translations for the values entered into the Lookup.

  • Jonatan R. Aug 1, 2012 5:42 PM Hello, didnt really know hwere to post this guess it more belong under like "computers" generally,    but! For a while...        (-THE LONGER VERSION) : No whait!, let me start where it all began, 2009, a december (erhh.. ii

    Hello, didnt really know hwere to post this guess it more belong under like "computers" generally, 
    but! For a while... 
        (-THE LONGER VERSION) :
    No whait!, let me start where it all began, 2009, a december (erhh.. iii think? Hwatever!) litlle me hwere nearly Totally blank to the computer world. And suddenly it stood there on the table, a shining (it was shining back there) new "hp pavillion entertainment pc" with its smell of fresh plastic mixed hwith the strong smell from the cardboardbox, remember it as if it were yesterday
    ... Since then.... I have today a good solid pc knowing! (at more advance level cmd,bott menu, recovery, blah, blah... NERD!) here at the last awhile, ive prommised to make a lot! A lot of video projects!
    (okay 2, but some big ones!) avchd multilayer 2 hours!!!! 
    So the poor hp laptop -dual core i2 4gb ram, has been begged to it knees! And simply cant handle it of course! and it have just trough time benn loaded with lots of crap, and is extremly noisy, heat, slow, anoying = unusable!
    SO hwat i need is...
        (-THE SHORTER) :
    A computer setup that will EASILY! could handle stuff like that  (avchd, multilayer, 2 hours project) -and simmilar. A total power machine! But Im tired of windows! And ugly cheap looking design! The times have changed and i change with them!
    NOW I WANT APPLE!! 
    But but but... Hwat should i get????
    1. Im NOT a billionare!
    2. I repeat: NOT a billionare!
    3. I also need portability for every day use beyond the hardcore creative editing and use
    AT LAST:
     i saw in front of me this genius plan... With a macbook pro, a tuned one, with as much of ram,cpu,gpu, and everything else as it can posibble have
    -the perfect combination of transportabillity, everydayuse and total power!
    When it gets combine with,
    A cinemadisplay
    A extra keyboard
    And a extra magic mouse
    And this power macbook pro, with screen, mouse, and keyboard i've found a really good offer at.
    MY ACTUAL QUESTION.... :
    Now it is yours turn to please! be creative! Please! Hwat does all you genius heads! think and say?
    WILL A super tuned MACBBOK PRO COMBINED WITH ACCESSORIES, AT ALL, BE ABLE TO REPLACE A STRONG MAC PRO, OR AT LEAST BE MORE THAN ENOUGH FOR REALLY HEAVY STUFF? And if yes, HOW strong actually (ram,cpu,gpu...) will it need to have to be "more than enough"?
    If no, what would all of  you then suggest that is perfect in relation to everything?
    PLEASE ANSWER!!

    Jonatan R. wrote:
    WILL A super tuned MACBBOK PRO COMBINED WITH ACCESSORIES, AT ALL, BE ABLE TO REPLACE A STRONG MAC PRO,
    No,
    the MacPro is the muscle machine and not constrained by power or cooling limitations like the MacBoo Pro is.
    OR AT LEAST BE MORE THAN ENOUGH FOR REALLY HEAVY STUFF?
    If you press the MacBook Pro like a desktop machine, it will blow fans like a hurricane but will do the job eventually.
    The longer you blow fans on a laptop, the sooner it clogs up with crippling dust and shortens the life of the machine.
    You'll need the top end 15" or better, not the 13" as it has no dedicated graphics, only CPU graphics.
    Preferably if you just now getting into video, you should be considering Avid on a Windows 7 tower, it's because Apple has been ignoring the MacPro for hardware updates to improve it and it seems like they don't want to carry it anymore. Also the last Final Cut Pro version had Hollywood up in arms as Apple removed a lot of required abilities to make it more "consumer friendly" which upset the Pro market who likes control.
    Apple is focusing on the consumer computing market and getting away from the "Pro" market which needs the heavier hardware to handle video needs. They stopped selling the X-RAID and the X-Server, so Apple really isn't a "computer" company any longer.
    Sure you can use a MacBook Pro and a external monitor for doing home movies and such occasionally, but if your into serious production you need to consdier other options now.
    There is nothing wrong in getting a MacBook Air and a Windows 7 professional video tower too.

  • How do I configure the Airport utility to allow more than one rule per port?

    How do I configure the Airport Utility (AU) to allow more than one rule per port?
    I am on a home network, with broadband cable modem.  I have my airport extreme connected to the broadband modem.  I have 2 servers in my home that need to be accessed remotely from time (SSH), and they also serve data for an iphone app, so I'm using a variety of protocols.  The problem I'm running into is that AU seems to only allow one rule per protocol, so if I go to add another address for access on a specific port that is being used by one of my servers, AU tells me "The Port Mapping Entry Already Exists". 
    I need to be able to allow SSH on both of my servers, for instance.  Am I missing something?  Is this doable with AU?
    Thanks for any insight.
    Khalid

    The Port Mapping "rules" on the AirPorts will allow you to: 1. Map a single port to a single IP address OR 2) Map multiple ports to a single IP address.
    What you won't be able to do is map a single or multiple ports to multiple IP addresses.

  • I have some more question

    I have some more question.How can I create web.xml and check it.And
    how can check the URL patten.thanks

    write a simple Test servlet,compile it and place it in your WEB-INF\classes of your application context.configure this servlet class in your web.xml and access it thru your browser to test it all
    Regards
    padmanava

  • Firefox 4b7 does not complete «More Answers from-» action on Formspring.me userpages; previous Firefox (3.6) was able to load more questions and answers

    Even in safe mode, Firefox 4b7 is not able to complete «More Answers from…» action on Formspring.me userpages, it just displays «loading more questions…» for a seemingly endless amount of time. (Firefox 3.6 and any other browser, such as Safari, displays «loading more questions…» for a short period of time when AJAX works, then the questions and answers are actually loaded and displayed.) In order to reproduce, load Firefox 4b7 in Safe Mode, visit www.formspring.me/krylov and click on «More Answers from Konstantin Krylov» (the bottom link). You may try any other user, www.formspring.me/teotmin or www.formspring.me/anandaya for example.

    what a waste of money sending an engineer to "fix a fault" which does not exist.  Precisely.
    In my original BE post to which Tom so helpfully responded, I began:  It seems to me that DLM is an excellent concept with a highly flawed implementation, both technically and administratively.   I think that sending out an engineer to fix an obviously flawed profile is the main example of an adminastrative flaw.  I understand (I can't remember source, maybe Tom again) that they are sometimes relaxing the requirement for a visit before reset.
    Maybe the DLM system is too keen on stability vs speed.  This will keep complaints down from many people: most users won't notice speed too much as long as it is reasonable, but will be upset if their Skype calls and browsing are being interrupted too often.  
    However, it does lead to complaints from people who notice the drops after an incidence (as in your thread that has drawn lots of interest), or who only get 50 instead of 60.  The main technical flaw is that DLM can so easily be confused by drops from loss of power, too much modem recycling, etc, and then takes so long to recover.

  • One more question.

    Hey again. I am probably going to go get my iMactoday or tomorrow. But I have one more question. I am aware that Macs are pretty much prone to viruses. But!!! When I download a version of Windows on Bootcamp, will I still have the amazing security, or will it be viruses like owning a PC? Thank you very much!

    HI,
    *"I am aware that Macs are pretty much prone to viruses."*
    Just the opposite. Windows users are the one's vulnerable to a virus.
    You will need anti virus software on the Windows partition.
    Carolyn

  • One more question..hehe :)

    I have one more question..sorry! How do I change the information in my google search (the description). I can't find it anywhere. Thanks

    and...
    i was also wondering if it is possible to change the title of my website when i search for it @ google & yahoo. you know how when you search for anything and it has the first line of blue hyper linked text? how do i change that on my website. is it the title (the one by the blue dot) or the first page? thanks!

  • One more question about "snap to" points in audio objects

    sorry, one more question people.............. is there a way to set a "snap to" point in an audio region? Can I have logic set a point, or an "anchor" within an audio region that would coincide with the cursor. Once I get the cursor to a bar or a beat, is there a command that would allow a "snap to" point to be created in an audio object? That way I could clean up any "noise" or "chatter" at the beginning of an audio bounce or any audio object, and still have no problem pasting it all over my arrangement. I'm sure it's in here somewhere, but can't find it in the manual..
    thanks again!!!

    The anchor point in an audio region can be moved to wherever you want it to be. Let's say you recorded a loud piano bass note and afterwards you trimmed the file so that the attack of this sound happens right at the beginning of the audio region. Your anchor point will now coincide with the begnning of that region. This means that you can place that audio at, say, bar 37 and it's guaranteed that the attack of that sound will play exactly at bar 37. In this case anchor point = position of audio region in the Arrange Window.
    Even though you haven't played a MIDI note into the song in order to place this audio region, an "event" is generated for this sound which can be viewed in a special version of the Event Editor which shows the position of all audio regions in the arrangement. Access this by simply clicking on a blank area of the Arrange window and then opening the Event Editor.
    So let's say this sound is positioned at bar 37. Open the Event Editor (as described above) and you'll see an event at 37 1 1 1 and the name of that audio region to its right. In this case, the event's position = the start of the sound file = the position of the anchor within that sound file. If you changed the position of that event to 38, or 109, or 3, that audio region will be "triggered" at any of those positions. That sound will always "attack" on a downbeat.
    Now let's say you reversed that pinao note in order to create a dramatic swell into a section of your song. (Open the sample editor and use the Reverse function). At this point, the anchor point is still positioned at the beginning of the file! Play back the sequence (from our bar 37) and the audio will play back from bar 37, only backwards this time; the peak of that piano note will be at some point later than 37.
    So let's say you wanted to position this sound so that it hits exactly on the downbeat of bar 37. How do you do it? Well, you could always slide the audio file in the Arrange Window and try to line up the attack of the audio waveform with the downbeat of bar 37, but there's an easier way...
    Open the sample editor and move the anchor point to the end of the file, coinciding with the peak of the waveform (the piano's attack is now at the end because we reversed the audio). Next, close the sample editor window, click on a blank area in the Arrange Window and open the Event Editor. You'll see that this audio region is still positioned at bar 37, but the actual beginning of the sound file now starts before bar 37. Now when you play back, Logic will start playing that sound file before bar 37, but the audio's peak will be lined up at bar 37.

  • Thanks.. can u please help me out in one more question. how can i transfer files like pdf, .docx and ppt from my laptop to iPhone 5 ? please its urgent.

    thanks.. can u please help me out in one more question. how can i transfer files like pdf, .docx and ppt from my laptop to iPhone 5 ? please its urgent.

    See your other post
    First, i want to know how can i pair my iPhone 5 with my lenovo laptop?

  • Profit Center Substitution Rules are exceeding More than 999 Rules

    Hi Experts,
         (Transaction Code GGB1) Profit Center Substitution Rule are exceeding More than 999 Rules. And there is a need of substitution rules to create.
    Please suggest me if any User Exists are available or alternative solutions through wich i can determine the profit center in sales order and same profit center can be transfer to FI as well as CO...
    Regards,
    Shivaji

    In the substitution you can use the option EXIT
    click on the help and go from  there:
    In table T80D you have to assign the exit name
    There are example ABAP's the standard one yopu have to replace in the table with a z version.
    Perhaps an other option is to de redesign from you substitutins, by using perhaps set's

  • Outlook 2013 Rules issue when more than 50 rules exist ("The rules on this computer do not match the rules on Microsoft Exchange").

    I think I may have found a bug.
    My Outlook 2013 profile has more than 75 rules. When I started testing Outlook 2013, I got the message "The rules on this computer do not match the rules on Microsoft Exchange. Only one set of rules can be kept. You will usually want to keep the rules
    on the server. Which rules do you want to keep?"
    I did the following troubleshooting:
    1. I created a new Outlook profile. This didn't fix the issue.
    2. I exported my rules, cleared them using "outlook /cleanrules", then reimported the rules. This didn't fix the issue.
    3. I cleared the rules again (outlook /cleanrules), then hand-entered the rules. This also didn't fix the issue.
    4. I reduced the number of rules to less than 50. This FIXED the problem.
    5. When I entered rule #51, the problem came back. When I removed ruled #51, the problem was again fixed.
    Does anyone know of a fix or workaround to this issue?
    Thanks.

    Sounds like you went over your "rule quota limit" as you do have a great number of rules.  Please see the link below for cause and possible resolution.
    http://support.microsoft.com/kb/886616
    Be kind and Mark as Answer if I helped.

  • More questions about pointers

    Sorry to post so many threads -- I hope I'm not pinching any nerves around here, but I've been in a programming trance recently, and I'm trying to learn as much as I can. If anyone has time to spare, there's still some things about pointers I'd like to try to understand. To start with, consider this simple character pointer declaration:
    char * pChar;
    What I'd like to know is what exactly is going on internally when this statement is compiled (before any other pointer or string literal assignment or anything like that -- just the declaration above). I mean, in terms of memory addresses and what not, what is happening here? This pointer variable would be created on the stack, right? What else happens?
    To expand on this question, let's say the above statement is the only statement in the entire program (so, again, there's no additional assignments to a string literal like +pChar = "a string"+ or to a character's address like +pChar = &charVariable+ -- I simply declare the character pointer +char * pChar+ and leave it at that.) If I then add the following printf() statement after it, like so:
    char * pChar;
    printf("%c", pChar);
    then the character 'K' is printed to the console. Alternatively, if I dereference pChar in the same printf() statement, like so:
    char * pChar;
    printf("%c", *pChar);
    then the character '[' (an opening brace) is printed to the console. All this seems odd to me given that the pointer hasn't been assigned to anything, so I would think it would produce a null value or something like that.
    I would really like to understand all this. Even after all the work I've put into trying to understand pointers, and even after all the help I've gotten from the devs around here, I still feel lost whenever I go back to pointers after having left them alone for even a short period of time.
    Any information on this topic, no matter how short or how long, will be very, very much appreciated. Thanks again.

    Yes -- I was referring to a local variable. Should have specified -- sorry about that.
    So we have a random address consisting of 4 bytes, e.g. in hex: [FE] [00] [09] [4B]. Assume when we tell printf to make a single char out of those bytes, it will select the lowest byte in the address (for extra credit, the student may determine if this assumption is true on his or her Mac; however students who fail to close this thread until that question is resolved will get no credit).
    hehe -- are you referring to the time you gave me that pointers exercise to do and it took me like two weeks to actually get around to actually doing it? Sorry about that, Ray -- it just took me awhile to find a time where I could put as much time and effort into as I wanted to (I don't know if you ever got around to reading the response, but I did put quite a lot of time and effort into that exercise, and it really was very helpful to me, so it didn't go to waste by any means, and I really appreciate your putting it up there for me to do). Anyways, the student apologizes to the instructor for that.
    This time around, though, the student would like to respond promptly to the instructor's exercise in order to receive his extra credit. The question that the instructor asked was to find out if "this assumption is true on his or her Mac" (this particular student is a he, by the way). I'm confused, though, about what particular assumption I'm supposed to be confirming. In the paragraph above, you said "we declare the char pointer pChar, and we assume that its value is random" -- is this the assumption I'm supposed to be confirming?
    I had changed the code a few times over the last 24 hours since I wrote this thread, and this time, when I went back and ran the following code:
    char * pChar;
    printf("%c", pChar);
    The student didn't get anything but a blank line. Instead of 'K' like before, nothing was written to the console that could be seen. Maybe it was a space or something this time, and that's why it wasn't visible? So, the student added another declaration after the first and used the same printf() statement to print the char-formatted value of the first char pointer, like so:
    char * pChar;
    char * pChar2;
    printf("%c", pChar);
    And this time I got a 'K' like before. If I change the printf() statement to print pChar2 instead of pChar then I get the space (or blank line or whatever) again. If I add another declaration, before the other two this time instead of after, like so:
    char * pChar3;
    char * pChar;
    char * pChar2;
    printf("%c", pChar);
    This time I still get 'K' for pChar. If I change the printf() statement to print pChar2, I get the blank line again. If I change the printf() statement to print pChar3, I get the blank line with it as well.
    I don't really know what to make of all that to be honest -- it seems like the pointer's value is pretty random to me, though. I don't know if that's the assumption you wanted me to check on or not. The only other one I can think of that you may have been referring to is when you mentioned that some compilers will check to see if the printf() function's arguments match the format specifiers, but I don't know what code I should run to find out if this is true or not for my compiler. I tried using printf() to print an int with a %c specifier and that ran fine, and when I did the opposite and used it to print a char with a %d specifier that worked fine too. But characters are integers (right?), so that's no surprise. If I declare an int, however, and try to use printf() to print it with a %s specifier, then the debugger comes up with a signal 10 error after the program starts, but I don't get any warnings ahead of time, so maybe that means the answer is no (meaning that the compiler does not check to see if the arguments match the format specifiers)
    Anyways, I think the student is butchering the instructor's exercise completely. The student feels very unintellegent at the moment, but he wanted to try...
    If the address stored in pChar is random, then the contents at that address will also be random.
    I would have thought that if the address is random, then the contents of that address would be empty since it is not an address that's being used, right? Does this mean that all memory addresses have something in them, even if they are not in use? I mean the frequently used "mailbox" analogy for pointers says that when you declare a variable, an empty mailbox is used to hold it, right? And if that's the case, doesn't that mean that the empty mailboxes have no contents? So how would the contents be random? I don't if any of that made any sense or not -- feel free to ignore me. I can't seem to get myself to understand how all this memory address business and everything surrounding it works -- I feel very lost.
    What do you expect to happen in this case?
    You asked this about running the following code:
    char * pChar;
    *pChar = 'A';
    Honestly, I really have no idea what to expect here. I mean, I know that usually, before you dereference a pointer to assign the value it points to to something (like in the second statement above), you usually assign the pointer to the address of another variable or something (like +pChar = &charVariable+). So, the student proceeded to cheat and run this code in his compiler, at which pointer the program ran, but he received a signal 10 error. He doesn't know what to make of this.
    My understanding of pointers is much, much better than what it used to be, and most of that is thanks to you and the other devs around here in previous threads I've started. Nevertheless, I still feel like I don't know much of anything in the realm of things when it comes to pointers.
    Thanks to the rest of you guys as well for all your responses. They were all helpful, and I read them all thoroughly, but it seems like, for every answer I get, five more questions come up that I'm equally confused about. I'm determined, though -- I'm not going to give up until I understand how all this works, so thanks to everyone for continually answering my questions.

  • Thx for the help today - one more question

    Thx for all the help today. My flash works perfect now. One
    more question... I get a frame around my flash when using internet
    explorer and have the mouse over it... why?
    check it out:
    http://www.ardent.se

    search google and this forum for "active content" - been
    front page news for weeks - hundreds of
    discussions, blogs, articles all over the web.
    --> Adobe Certified Expert (ACE)
    --> www.mudbubble.com :: www.keyframer.com
    -->
    http://flashmx2004.com/forums/index.php?
    -->
    http://www.macromedia.com/devnet/flash/articles/animation_guide.html
    -->
    http://groups.google.com/advanced_group_search?q=group:*flash*&hl=en&lr=&ie=UTF-8&oe=UTF-8
    cjh81 wrote:
    > Thx for all the help today. My flash works perfect now.
    One more question... I
    > get a frame around my flash when using internet explorer
    and have the mouse
    > over it... why?
    >
    > check it out:
    http://www.ardent.se
    >

  • Suggestions for archiving an iPhoto library? (and more questions)

    Ok, so here is my issue:
    Over 12,000 photos
    Over 65GB
    New camera that doubles the average file size of most previous pics to ~3MB
    I've thought about starting a new library and archiving the current one, but there is one thing I am scared of: having an old library sitting around and not getting progressively updated. The times I have had problems with my library have been when skipping between versions of iPhoto and the library essentially gets "combo" updated (not the program itself, but when it updates the library files as it often does).
    I don't think I would like to access the library from an external. It was a mess when I did it with iTunes, and regardless of available space, I think a new library that doesn't have any left over data from when it was started in 2002-2003 would be a good idea.
    With that out of the way:
    What are your ideas?
    What have you done for this?
    Just in case there is a drastic change like Final Cut X, or it is dropped like iWeb/iDVD in 10 or 100 years in the future, how can I make a clean backup that does not rely on iPhoto? ("show package contents" is just messy as I have many modified and don't require the originals in those cases.).
    Any thing else that I haven't thought of, or any sites you could point me to or personal experiences with this would be great. Thank you!

    There are several different questions in there.
    I've thought about starting a new library and archiving the current one, but there is one thing I am scared of: having an old library sitting around and not getting progressively updated.
    Simple solution: keep progressively updating it? In other words, use it all the time. Move your existing Library to an external drive.
    Make sure the drive is formatted Mac OS Extended (Journaled)
    1. Quit iPhoto
    2. Copy the iPhoto Library from your Pictures Folder to the External Disk.
    Now you have two full versions of the Library.
    3. On the Internal library, trash the Events you don't want there
    Now you have a full copy of the Library on the External and a smaller subset on the Internal
    Some Notes:
    As a general rule: when deleting photos do them in batches of about 100 at a time. iPhoto can baulk at trashing large numbers at one go.
    You can choose which Library to open: Hold down the option (or alt) key key and launch iPhoto. From the resulting menu select 'Choose Library'
    You can keep the Library on the external updated with new imports using iPhoto Library Manager
    Think of it this way: You have a Master Library which contains everything and another which contains more current material.
    I don't think I would like to access the library from an external. It was a mess when I did it with iTunes, and regardless of available space, I think a new library that doesn't have any left over data from when it was started in 2002-2003 would be a good idea.
    There is no reason not to use an external as described above, This is also true of iTunes. I have no idea why you might regard it as a benefit not have data from 2002. It's much more convenient to have all the data in one Library.. If it was a mess when you did it with iTunes then respectfully I suggest that maybe you  didn’t do it right . My iTunes Library runs to hundreds of gigs so it has to reside on externals, and does with no problems.
    Getting Photos out of iPhoto is simple and safe: File -> Export. You can choose to export Masters. Or just current versions and so on.
    Apps like iPhoto2Disk or PhotoShare will help you export to a Folder tree matching your Events.

Maybe you are looking for