Trying to understand the Mac world

I've had my IMac for nearly 2 years now but have struggled all the way to migrate from a Windows environment. There seem to be so many hurdles to overcome, not least due to the horribly closed Mac universe which has made accessing things like music files, and sharing documents, incredibly difficult.
I've tried the One to One service, and asked questions at the Genius bar and via the Helpline, but rarely get a useful answer. Nice people sure, but I feel I'm dealing with staff that have been weaned on Apple (through Ipods etc) - they know a fair bit about Macs, but seemingly very little about Windows and therefore of limited help in getting from one to another. Try asking someone about FLAC audio files for example . . .
Some of the sort of issues I'm struggling to sort out include;
1) In Windows I can use the F4 key to 'repeat last action'. An incredibly useful feature when formatting a number of separate cells in a spreadsheet for example. Yet I can find no equivalent in the Mac world - I can't even see how I might configure my keyboard accordingly.
2) Having more than one application open on the desktop at a time. For example I open Word (MS Office for Mac), I then open Excel so I can cut and paste a few bits and pieces. As soon as I open Excel, Word minimises and zooms down to the Dock.
3) Screen sizes. Why oh why does my Mac insist on opening applications in a window it determines the size of ? For instance I open Numbers - on my 27" IMac it opens a window at best about 6" square, complete with tiny, almost unreadable fonts. Is there no way to get applications to open full screen, and in a set font size, by default ?
4) Screen resizing - I guess this is a feature of the OS (Snow Leopard 10.6) - only available in the bottom right ahnd corner. Just means more shuffling of windows about to use it effectively. Why can't screen resizing be done from any side as in Windows ?
And don't get me started on hardware - why does a 27" IMac get shipped with a tiny wireless keyboard ? Wireless is good for sure, but surely a desktop computer isn't trying to save space to the extent that ones loses the numeric keypad, and worst of all, the DELETE key (aaagagahgha). I've had to buy a wired version to get the functionality I need (along with some accesible USB sockets). And then there is the card reader that can only cope with SD, the USB sockets helpfully out of easy reach round the back (makes using a datastick a real pain) . . . .
Perhaps I shouldn't have gone down the Mac route (but now I've got an IPad too so heaven help me) . . . .

A couple of answers:
1. Microsoft Mac Office apps use command-Y for repeat last action, but that appeard to be missing from Apple's own apps, so it might be a Microsoft-specific thing.
2. The "open Excel and Word minimizes" issue is one I have not seen in something like 14 years of using them on Mac OSes on a few dozen Macs. Sorry. I honestly don't know how to do that, but it's worth asking Microsoft Support about it.
3. Traditionally, Mac apps open windows in the sizes you left them in; that is, the size at which you last saved the document. I can't think of a better convention. The exception is the new full-screen view added in OS X 10.7 (Lion); you appear to have to enable that each time you use the doc. Consider this dueling conventions: For years, I hates using Windows machines precisely because it insisted on obscuring all the other open windows with the current document, which I found terribly unhelpful, in my case based on experience from older windowing environments.
4. Lion changes resizing as well: you can now resize from any boundary of a window. Don't know, considering your antipathy to the Mac experience, if it's worth spending whatever Apple charges for Lion in your country for these last two features alone.
    If my memory serves, Apple's original wireless keyboard was a full one (home &c. keys, numeric keypad), and the delete with a right arrow key was near th ehome key, as on the wired keyboard. I'm guessing Apple's marketing and focus groups found most people who wanted wireless keyboard didn't care about the extra keys, ("I want to be able to stick this in my backpack") and vice versa for the size of the wired ones, but that is, again, just a guess. There are lots of third-0party Bluetooth wireless keybaord that work with the Mac --- and probably cheaper than Apple's (in every sense of the word "cheaper").
    You don't say which card formats other than SD you want to use, but the last micro-SD card I bought came with an SD-sized adapter, for what it's worth.
    I have to agree with the inconvenience of using USB (and FireWire, and now Thunderbolt) ports on the back of the iMac, but (a) Jonny Ives like "clean" design (sorry, bad attempt at blaming the issue on a Brit), and (b) brlieve it or not, you get used to roatating the iMac 90 degrees, craning your neck around, and inserting your bit of kit. And if you have an Apple wired keyboard, you can stick USB thumb drives into the ports at either end.
    I think most people who've used both Macs and Windows machines for a while agree that the first reaction to the "other" platform is irritation: "Why does this thing not do things the way I'm used to?" Just as I learned not to expect Windows to do things in a Mac OS-like way, I don't expect Macs to do things in a Windows-like manner. Not a great answer, but it's the way it is.
    Can't imagine this helped at all, but hope it at least cleared a few things up.

Similar Messages

  • I have a canon hf10 and need to be able to transfer my video from my camera to my computer so I can burn them to dvd is there a step by step process? i'm new 2 the mac world.  I tried downloading imovie 7.1.2 but it said, "An eligible iMovie application

    i have a canon hf10 and need to be able to transfer my video from my camera to my computer so I can burn them to dvd is there a step by step process? i'm new 2 the mac world.  I tried downloading imovie 7.1.2 but it said, "An eligible iMovie application was not found in the location /Applications." can anyone give me step by step instructions? i would hate to call the geek squad!!!LOL

    and what's a firewire port? how do i know if i have one?

  • There ' is a panel that sayscopy' preparing to duplicate to "desktop". I clicked stop three days and it still trying to stop. Tried to 'force quit' does not show up, looked in activity monitor but i am not sure how it is listed. I am new to the mac world.

    there is panel in the upper right corner of my screen that says 'copy' preparing to duplicate to "desktop". I clicked stop three days ago and it is still trying to stop. Tried to 'force quit' does not show up in finder, looked in activity monitor but i am not sure how it is listed. I am new to the mac world.

    Force quit/Restart the Finder.
    Then for safety...
    Bootup holding CMD+r, or the Option/alt key to boot from the Restore partition & use Disk Utility from there to Repair the Disk, then Repair Permissions.

  • New to the MAC world - can you suggest a new drive for my G4?

    Hi, I'm a newcomer to the MAC world after using Windows for years. I'd long wanted to make the switch and now my chance has come I'm absolutely delighted.
    At the moment I'm still finding my way around but I already have an idea about upgrade choices and the first is to replace the Hitachi GD-7000 DVD-ROM drive. It appears to be unable to read at least one commercial DVD and has problems with some data CDR/RW's from my collection (the same discs work fine in numerous standalone players and other DVD drives).
    Although I live in a "region 2 zone", I buy lots of region 1 films via Amazon and out of 7 discs tried using VLC only one worked (they all work on my PC's) - is this because of regional coding issues such as RCE or rather the Hitachi's age?
    I realise that ultimately the drive will have to be replaced and I would appreciate it if you could please offer suggestions on suitable drives.
    Thanks,
    Jay
    PowerMac AGP Sawtooth   Mac OS X (10.3.9)   512MB RAM Dell 17" Monitor
    PowerMac AGP Sawtooth   Mac OS X (10.3.9)   512MB RAM Dell 17" Monitor

    Thanks a lot for all the feedback, I've visited the links that you posted for me to check out and tomorrow I'm going to buy the Pioneer DVR-110D. As Malcolm stated, it can be picked up very cheaply (£23!)
    http://www.yoyotech.co.uk/productinfo.php?cPath=10_34&productsid=567&osCsid=5032a3a66dd48b74203e6699d03a3fbd
    Thanks again,
    Jay

  • Trying to understand the sound system

    Here's my problem. My mic didn't work (neither the front mic nor the line-in in the rear), so after some research and trial and error I found that if I do
    modprobe soundcore
    my mic works on both the jacks
    But here's where my confusion lies. This is the output of lsmod |grep snd before probing explicitly for soundcore
    [inxs ~ ]$ lsmod |grep snd
    snd_hda_codec_analog 78696 1
    snd_hda_intel 22122 1
    snd_hda_codec 77927 2 snd_hda_codec_analog,snd_hda_intel
    snd_hwdep 6325 1 snd_hda_codec
    snd_pcm_oss 38818 0
    snd_pcm 73856 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
    snd_timer 19416 1 snd_pcm
    snd_page_alloc 7121 2 snd_hda_intel,snd_pcm
    snd_mixer_oss 15275 2 snd_pcm_oss
    snd 57786 8 snd_hda_codec_analog,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss
    soundcore 6146 2 snd
    [inxs ~ ]$
    So as you can see, soundcore's already loaded, so why do I have to explicitly load it again to get the mic to work?
    Once I add soundcore to my MODULES array and reboot, the lsmod output is also the same as above.
    So my question is -- what does the explicit loading of soundcore do, that is not done by auto-loading of that module?

    Oh... since your topic is Trying to understand the sound system, that puts you (and me) inside the whole world's population... chuckle. But I thought I'd pass along a document written by probably "The" main ALSA developer that I totally stumbled across just 3 days ago.
    Go here:
    http://kernel.org/pub/linux/kernel/people/tiwai/docs/
    and download the flavor of your choice of the "HD-Audio" document, or simply view it online. It documents the deepest dive into the current ALSA snd_hda_* layers and issues that I've found to date (but still leaves me wanting).
    Why that document isn't plastered across the interwebs is beyond me. I only get 11 hits when I search for it... such are the secrets of the ALSA world I guess.
    Last edited by pigiron (2011-08-26 18:26:48)

  • I'm new to the Mac world. I installed my Epson printer on my IMAC and it worked fine. Then I installed Windows7 through Bootcamp and I think it reconfigured a port and now I get a communication error and it won't print. Any help on how do to fix this?

    Sorry, I'm new to the Mac world. I recently got a new IMAC and installed my Epson CX5800F printer and it worked fine. Then a few weeks later I installed Windows7 through Bootcamp and I think it reconfigured a port or something and now I get a communication error and it won't print. Can anyone help me with this problem, and/or help me get the port back the way it was? Thanks, Barry

    While looking through profile first aid, I came across this that might help explain my problem.
    Searching for profiles...
    Checking 20 profiles...
    /Library/Printers/EPSON/InkjetPrinter2/ICCProfiles/Standard.profiles/Contents/Re sources/Epson IJ Printer.icc
       Tag 'desc': Tag size is not correct.
       Tag 'dmdd': Tag size is not correct.
       Tag 'desc': Description tag has a bad Macintosh string.
       Tag 'dmdd': Description tag has a bad Macintosh string.
       The file is locked. Could not be fixed.
    Repair done - 0 out of 1 profiles fixed.

  • I got a Model Number: A1181, My hard drive burned out. I bouhgt a new hard drive Wd Scorpio 500 GB. When i tried to install the MAC OS, it identies a hard drive with 3.6 TB and i'm not able to do the installation.

    I got a Model Number: A1181, My hard drive burned out. I bouhgt a new hard drive Wd Blue Scorpio 500 GB. When i tried to install the MAC OS, it identifies a hard drive with 3.6 TB and i'm not able to do the installation. I touhgt the new ard drive was bad but i was able to install windows XP. Any ideas what do i have to do?

    Well, let's hope that nothing was jiggled out of place when you were installing the new hard drive. Your optical drive may just be out of alignment or the disc you have is "dirty." Get a lint-free cloth and some rubbing alcohol, then clean the disc as thoroughly as you can starting from the center and working outward in a concentric circlular motion. See if that helps. In particular clean the inner portion well.
    If this does not help, then you have a problem. You have opened the computer yourself. That action voids all support from Apple. If you take the computer in for service the store may refuse to service the computer. This is not related to your now expired warranty.

  • I'm new to the MAC world. I turned my computer on from 'sleep' mode, and a window was up stating that the IOS disk was full; asked me to force quit, then it just froze. It's been 2 hours. Help! I'm worried about losing photos/videos of my children. Thx!

    I'm new to the MAC world. I turned my computer on from 'sleep' mode, and a window was up stating that the IOS disk was full; asked me to force quit, then it just froze. It's been 2 hours. Help! I'm worried about losing photos/videos of my children. Im not sure if there's something special I need to do once I turn it back on; in the meantime, its still on... which I'm afraid the picture on the screen will burn into the screen. Does that happen on iMac's? Thx!

    Try a hard reset. ( holding Power til it restarts)
    Once to your desktop. Click the Apple icon >> About this mac >> More info>> Storage
    Once you see what you have the most of. Try to see what you can delete.
    Open up any folder>>all files>> or buy an external to store more data.
    Once deleting make sure you empty your trash.
    If you are new and its a new computer, you might need to bring it to a store for further assistence.
    Coast Guard Mechanic w/ an Apple Problem

  • I am trying to understand the licensing procedures for using tabKiller for 3.5.7 firefox. Who should I contact for this? I do not see any customer service phone number for Firefox

    I am trying to understand the licensing procedures for using tabKiller for 3.5.7 firefox. Who should I contact for this? I do not have the customer service phone number for Firefox

    Tab Killer is not created by Mozilla, it is created by a private individual who has made it available at no cost for other people to use.

  • [SOLVED] Trying to understand the "size on disk" concept

    Hi all,
    I was trying to understand the difference between "size" and "size on disk".
    A google search gave plenty of results and I thought I got a clear idea about
    it.. All data is stored in small chunks of a fixed size depending on the
    filesystem and the last chunk is going to have some wasted space which
    will *have* to be allocated.. Thus the extra space on disk.
    However I'm still confused.. When I look at my home folder, the size on disk
    is more than 320 GB, where as my partition is actually less than 80 GB, so
    I guess I'm missing something.. Could somebody explain to me what does
    320 GB of 'size on disk' means?
    Thanks a lot in advance..
    Last edited by geo909 (2011-12-15 23:17:25)

    Hi all,
    Thank you for your replies.. My file manager is indeed pcman fm and
    indeed it seems to be an issue.. In b4data's link the last post reads:
    B-Con wrote:
    FWIW, I found the problem. (This bug is still persistent in v0.9.9.)
    My (new) PCManFM bug report is here: http://sourceforge.net/tracker/index.ph … tid=801864
    I submitted a potential patch here: http://sourceforge.net/tracker/?func=de … tid=801866
    Bottom line is that the file's block size and block count data from the file's inode wasn't being interpreted and used properly. The bug is in PCManFM, not any dependent libraries. Details are in the bug report.
    Since PCManFM is highly used by the Arch community, I figured I should post an update here so that there's some record of it in our community. Hopefully this gets addressed by the developer(s) relatively soon. :-)
    I guess that pretty much explains things.. And I think I did understand the 'size on disk' concept
    anyway
    Thanks again!
    Last edited by geo909 (2011-12-15 23:17:10)

  • Trying to Understand the PostSyncCleanup parameter

    I've got a problem with running my application on the Australian version of Windows. We have a "test" application built around SQL Server Compact Merge Replication Library (thanks ErikEJ) and that works but our application doesn't.
    One of the main differences with our application code is that we do not set the PostSyncCleanup value to anything and the library sets it to 2 per this link:
    http blogs.msdn.com/b/sqlblog/archive/2009/04/15/sql-compact-performance-postsynccleanup-to-turn-off-updatestatistics-during-initial-download-of-sql-compact-replication.aspx (put the :// back to get the link)
     I'm trying to understand the impact of making that our "production" configuration since we haven't been using it.  The description looks harmless enough but I don't really understand what statistics I'm turning off and what the impact
    would be and what even the default setting is.  Anything that could enlighten me would be appreciated along with a guess as to why that might be causing a problem on the Australian version of Windows would be appreciated.

    So we've been running with the default value (0) and have not really had any "problems".  I haven't done any testing but I'm ok with faster, like everyone would be, but am also a bit risk averse so want to know what exactly I'm turning off.
    I also saw this advice from Rob Tiffany:
    Use the appropriate x64, x86 or ARM version of SQL Server Compact 3.5 SP2 to take advantage of the
    PostSyncCleanup property of the SqlCeReplication object that can reduce the time it takes to perform an initial synchronization. Set the
    PostSyncCleanup property equal to 3 where neither
    UpdateStats nor CleanByRetention are performed.
    Here: http  robtiffany.com/microsoft-sql-server-compact-3-5-sp2-has-arrived/
    So, is the best advice to use that parameter and set the value to 3 or 2
    I don't really know what I'm losing to "not performing" UpdateStats or CleanByRetention and does making that change need I need to do something else on the server or client to "clear out" or "clean up" something that this is
    doing.

  • Trying to understand the code???

    Hi,
    I am trying to understand the following bit of code, currently the code puts each catalogue into a different row of the table but i want each catalogue to be put in the next column
    (so the catalogues appear across the page on the actual web page). The following code is for the page in question but im not sure how much is relevant so i will paste it all and highlight the section i think is relevant:
    <html>
    <%-- DECLARATIONS --%>
    <%@ page import="se.ibs.ns.cf.*,  se.ibs.ccf.*, se.ibs.bap.*, se.ibs.bap.util.*, se.ibs.bap.web.*,  java.util.*, se.ibs.ns.icat.*, se.ibs.bap.asw.cf.*, java.lang.*" %>
    <% ItemCatalogueBean bean = (ItemCatalogueBean)SessionHelper.getSessionObject("ItemCatalogueBean",session);
       String resourcePath = bean.getResourcePath(null);
       String title = "Product catalogue";
       String languageCode = bean.getLanguageCode();
    %>
    <%@ include file="FuncHead.jsp" %>
    <BODY class="IBSBody" onLoad="loaded = true;">
    <form method="POST" action=<%= bean.getEncodedServlet("se.ibs.ns.icat.ItemCatalogueSearchServlet", response) %> name="basicForm">
    <%@ include file="FuncSubmitScript.jsp" %>
    <%@ include file="FuncPageBegin.jsp" %>
    <div align="center">
      <table border="0" width="895">
        <tr>
          <td align="left" width="502">
    <div align="left">
      <table border="0" width="500">
        <tr>
          <td class="IBSPageTitleText" align="left" valign="top" width="238">
              <%@ include file="FuncPageTitle.jsp" %>
              <%@ include file="FuncPageTitleImage.jsp" %>
                    <br>
           On this page you can see the product catalogues. Click on one of the
           links to go to the next level. Alternatively you can click the <b>Search
           catalogue</b> button to find the products of interest.</td>
               <td width="248" valign="bottom">
                <div align="left"><%@ include file="FuncShoppingCart.jsp" %></div>
               </td>
        </tr>
      </table>
    </div></td></tr></table></div>
    <input type="submit" value="Search catalogue" name="ACTION_NONE" onClick="submitButtonOnce(this); return false">
    <hr>
    <%-- REPEAT CATALOGUES --%>
    <div align="left">
    <table border="0" width="100%">
    <% Vector catalogues = bean.getItemCatalogues();
            int cataloguesSize = catalogues.size();
               for (int i = 0; i < cataloguesSize; i++){
                      BAPItemCatalogue cat =  (BAPItemCatalogue) catalogues.elementAt(i); %>
              <%-- LINK AND MARK AS NEW --%>
                  <tr>
                         <td width="23%"><a class="IBSMenuLink" href="link" onClick="javascript:invokeLink('<%= bean.getEncodedServlet("se.ibs.ns.icat.ItemCatalogueCategoryServlet", response) %>?CODE=<%= ToolBox.encodeURLParameter(cat.getCode())%>'); return false">
                              <%= cat.getDescription(languageCode) %></a>
                         </td>
                         <td width="40%" align="right">
                              <% if (cat.isNew()) {%>
                                     <img border=0 src="<%= resourcePath %>new.gif">
                              <% } %>
                        </td>
                  </tr>
              <%--  CATALOGUES IMAGE AND INTERNET INFORMATION (text, multimedia objects,downloads, links...) --%>
                  <tr>
                         <td width="23%" valign="top" align="left">
                              <% if (bean.isAdvanced(cat) && bean.hasMultimediaImage(cat)) { %>
                                   <a href="link" onClick="javascript:invokeLink('<%= bean.getEncodedServlet("se.ibs.ns.icat.ItemCatalogueCategoryServlet", response) %>?CODE=<%= ToolBox.encodeURLParameter(cat.getCode())%>'); return false">
                                   <img border="0" src="<%= bean.getMultimediaImage(cat) %>"></a>
                        <% } else {%>     
                                   <img border="0" src="<%= resourcePath %>Catalog.gif">
                              <% } %>
                         </td>
                         <td class="IBSTextNormal" width="40%" valign="top">
                              <%= bean.getWebText(cat) %>
                         </td>
                  </tr>
                  <tr>
                         <td width="23%">
                         </td>
                         <td width="40%">
                         <% Vector mmLinks = bean.getMultimediaLinks(cat);
                      int mmLinksSize = mmLinks.size();     
                              for (int ml=0; ml<mmLinksSize; ml++){
                                   BAPCodeAndDescription mmLink = (BAPCodeAndDescription)mmLinks.elementAt(ml); %>
                                   <a class="IBSLink" href="<%= mmLink.getCode() %>" target="_blank"><%= mmLink.getDescription() %></a><br>
                         <% } %>
                   <% Vector webLinks = bean.getWebLinks(cat);
                        int webLinksSize = webLinks.size();
                        for (int wl=0; wl<webLinksSize; wl++){
                                   BAPCodeAndDescription webLink = (BAPCodeAndDescription)webLinks.elementAt(wl); %>
                                   <a class="IBSLink" href="<%= webLink.getCode() %>" target="_blank"><%= webLink.getDescription() %></a><br>
                        <% } %>
                         </td>
                  </tr>
                <%}%>
    </table>
    </div>
    <%@ include file="FuncPageLinks.jsp" %>
    <%@ include file="FuncPageEnd.jsp" %>
    </form>
    </body>
    </html>i hope someone could help me to understand this,
    thank you for your help

    You've probably already seen these, but here are a couple of links that may help.
    http://help.adobe.com/en_US/FlashPlatform//reference/actionscript/3/operators.html#array_a ccess
    http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/Array.html
    What's basically happening is that the "for" loop goes through each item in the array.  Don't be confused by the fact that two of the items in the array are Strings and one is an Integer - variable i being a String has nothing to do with the data type of the elements in the array.
    The following code:
    private function createLabels():void
         var myArray:Array = ['one', 'two', 3];
         for(var i:String in myArray)
              trace("i = " + i);
              trace(myArray[i]);
    gives the following results:
    i = 0
    one
    i = 1
    two
    i = 2
    3
    From that we can see that the "for" loop is assigning the index number of each array element, not the actual array element ('one', 'two', or 3) to the variable i.  So calling myArray[i] is the same as calling myArray[0] the first time through the loop.  This type of "for" loop is just a shorter way of doing the following, which produces exactly the same results:
    private function createLabels():void
         var myArray:Array = ['one', 'two', 3];
         for(var i:int = 0; n < myArray.length; i++)
              trace("i = " + i);
              trace(myArray[i]);
    Hope that helps.
    Cheers!

  • Trying to understand the basic concept of object oriented programming.

    I am trying to understand the basic concept of object oriented programming.
    Object - a region of storage that define is defined by both state/behavior.
    ( An object is the actual thing that behavior affects.)
    State - Represented by a set of variables and the values they contain.
    (Is the location or movement or action that is the goal that the behavior is trying to accomplish.)
    Variables- (What does this mean?)
    Value - (What does this mean?)
    Behavior - Represented by a set of methods and the logic they implement.
    ( A set of methods that is built up to tell's the how object to change it's state. )
    Methods - A procedure that is executed when an object receives a message.
    ( A very basic comand.For example the method tells the object to move up, another method tells the method to go left. Thus making the object move up/left that combination is the behavior.)
    Class - A template from which the objects are created.
    ( I am very confused on what classes are.)
    - The definitions of the words I obtained from the "Osborne Teach Yourself Java". The () statements are how I interperate the Mechanisms (I do not know if Thats what you call them.) interact with each other. I understand my interpretation may be horribly wrong. I will incredibly appreciate all the support I may get from you.
    Thank you

    Object oriented programming is a replacement for the older idea of procedural programming (you can research procedural programming in google). As I understand it, in procedural programming, you have a step by step set of function calls to accomplish some task. Each function receives a data structure, manipulates it, and passes it to the next function. The problem with this is that each function preforms some action for the overall task and can't easily be reused by some other task. Its also harder to read the flow of what is happening with raw data structures flying all over the place.
    In object oriented programming, an object calls a function of another object and receives back, not a data structure, but another object. Objects contain a data structure that can only be accessed by its functions. An object is not so much a sub component of a bigger task, as it is a service that any other task can use for any purpose. Also, when you pass an object to the caller, the caller can ask questions about the data structure via its functions. The developer doesnt have to know what the previous function did to the data by reading up on any documentation, or having to reverse engineer the code.
    I suggest the best way of learning this is to code something like a library object.
    A library object contains a collection of book objects
    A book object contains a collection of chapter objects
    A chapter object contains a collection of paragraph objects
    A paragraph object contains a collection of sentence objects
    A sentence object contains a collection of word objects.
    Add functions to each object to provide a service
    Example: A library object should have a:
    public void addBook(Book book)
    public Book getBook(String title)
    public boolean isBookInLibrary(String title)
    The key is to add functions to provide a service to anyone who uses your object(s)
    For example, what functions (service) should a paragraph object provide?
    It shouldn't provide a function that tells how many words there are in a sentence. That function belongs to a sentence object.
    Lets say you want to add a new chapter to a book. The task is easy to read
    if you write your objects well:
    Sentence sentence1=new Sentence("It was a dark and stormy night");
    Sentence sentence2=new Sentence("Suddenly, a shot ran out");
    Paragraph paragraph=new Paragraph();
    paragraph.addSentence(sentence1);
    paragraph.addSentence(sentence2);
    Paragraphs paragraphs=new Paragraphs();
    paragraphs.addParagraph(paragraph);
    Library library= new Library();
    library.getBook("My Novel").addChapter("Chapter 1",paragraphs).
    Now, lets say you want to have a word count for the entire book.
    The book should ask each chapter how many words it contains.
    Each chapter should ask its paragraphs, each paragraph should ask
    its sentences. The total of words should ripple up and be tallied at each
    stage until it reaches the book. The book can then report the total.
    Only the sentence object actually counts words. The other objects just tallies the counts.
    Now, where would you assign a librarian? What object(s) and functions would you provide?
    If written well, the project is easily extensible.

  • Trying to understand the Serialization interface

    Im trying to understand the Serialization of objects?
    As an example, I create a Library class that implements Serializable, that stores a collection of Book objects
    If I am only looking at saving a Library object to file, does the Book class require Serialization also or just the Library?
    I have read the API on serialization, no answer there, if it is it's not easy to understand or read into the API...

    There are some really important things to know about when doing serialization. For example one important thing to know about that not is mentioned here is that your serializable classes must define its own private static final long serialVersionUID because if you not do that will you not be able to deserialize (read in) the data you have saved later if you change anything in your serializable class. It is a bit tricky to manage files to which you have serialized different versions of your class, that is versions where you have added more serializable members to the class after you have serialized files. Well, it is not a problem if you don´t care if you have to type in all your saved data again every time you change anything instead of deserialize it (read it) from your file of course :)
    Situations like this may be handled if you define your own (private) writeObject(ObjectOutputStream) and your own readObject(ObjectInputStream) methods in your serializable class but there is a better a lot smarter way to handle this. Use of a serialization proxy! how to use that is described in the excellent book Effective Java 2nd ed. With a serialzation proxy for every serializable version of your class (where a version corresponds to a version of your class with differences in its number of serializable members) may your class deserialize data written from elder versions of your class also. Actually is it first since I read the last chapter of Effective Java that I think I have myself begin to understand serialization well enough and I recommend you to do the same to learn how to use serialization in practice.

  • I am new to the MAC world but I am very familiar with Lightroom on a PC. This weekend I was weeding out the pics I do not want on my MAC and now I have a ? by all my folders.  How do I recover/get back to where I was 2 days ago?

    I am new to the MAC world but I am very familiar with Lightroom on a PC. This weekend I was weeding out the pics I do not want on my MAC and now I have a ? by all my folders.  How do I recover/get back to where I was 2 days ago?

    These instructions will help you fix the problem: Adobe Lightroom - Find moved or missing files and folders

Maybe you are looking for

  • Voice memos are not sychronizing

    all of the sudden my voice memos don't synch anymore. they are shown in the list on the phone but are synched to my computer (Windows 7) Anybody know why and what to do ?

  • Abstract Interface for IDoc Proxy

    Hi All,           Do we need to make Abstract interfaces for IDocs and Proxys too if we want to use them in BPM? XIer

  • Updating button icon issue

    Hi, thanks for stopping by. Working with scriptUI panel and trying to update icon for my button, but something goes wrong with my code, I guess... Can someone write what is the problem here? var mainPanel; function stabpanel(thisObj) {     mainPanel

  • Canon G12 RAW files not recognized

    The DNG converter V6.3 I just downloaded and installed does not recognize RAW files from my Canon G12.  Any idea why?

  • Bring multiple windows to front

    I'm working on an application that has multiple JFrames. The multiple JFrames are needed because the application wraps around the bottom left corner of the screen like an "L", and needs to be in a specific area. When one of these windows are brought