Updates from October, 2008 Toggle Comment Threads | Keyboard Shortcuts

  • Jonathan Dann 18:07 on October 24, 2008 Permalink | Reply  

    I Love Outline Views – Here’s Mine 

    Apps like Coda are the de-facto standard for good user-interface design nowadays. You can do a lot with the standard Cocoa controls provided by Apple, but you can’t always get exactly what you want out-of-the-box. For example, the CSS edit section of Coda has a fantastic way of dividing tasks: the animated outline view.

    Rather than having a monolithic view that has all the controls grouped with dividing lines; each section, “Text”, “Colors and Background”, “Dimensions”, all exist in their own collapsible view. Clicking the separating bar animatedly expands or collapses the view.


    To make one of these views isn’t quite as easy as you first think, and you can quickly go down the wrong road in the design. The super-secret trick is to *not* use Core Animation, or more precisely: ignore the lure of NSViews conformance to the NSAnimatablePropertyContainer protocol. As of Mac OS X 10.5, a few of the properties of a view or window can be animated simply be replacing calls like [view setFrame:newFrame]; with [[view animator] setFrame:newFrame];. This is fine when you have one or two views that you want to move but it’s impossible to coordinate the movements of multiple view using this API. After using Core Animation, one would expect that after a call such as [[view animator] setFrame:newFrame]; requesting the frame from the view would return newFrame. Unfortunatley it returns the original frame of the view. Only when the animation is done, do you get newFrame. Furthermore, just try setting the delegate of the CABasicAnimation object that handles the implicit animation and getting any form of useful information back. You can’t. You’re in for a world of pain if you try.

    The solution: use good-ol’ NSViewAnimation. That way you can create all the dictionaries containing the animations for all the views you want to, then instantiate one NSViewAnimation object to handle the lot and set them off at the same time. Simple.

    The Animating Outline View

    The outline view is made up of a few classes, the TLDisclosureBar, a subclass of the highly-configurable TLGradientView; the TLCollapsibleView which has a TLDisclosureBar and any NSView you like as its subviews. A TLCollapsibleView itself can be used alone, and will animate the collapse/expansion of the NSView subview (which I term the “detail view”).

    The fun part comes when TLCollapsibleViews are subviews of a TLAnimatingOutlineView. In this case, the TLAnimatingOutlineView takes over all the animations, simply asking the TLCollapsibleView that the user has selected for the NSDictionary object that describes the collapse/expansion animation. With this information, it constructs the movement animations for all the subviews below the collapsing/expanding view and handles the required change of frame size to accommodate the changing content size. It’s all quite elegant, if I do say so myself.

    Not being content with example code, I’ve made sure these classes are real-world useful. This view is integral to BibTeX management in Scribbler so it needs to be good. Some of the relevant parts of the NSOutlineView API are replicated and the delegate of the TLAnimatingOutlineView gets will/did/expand/collapse notifications, along with allowing the delegate to deny/allow animations, too. Each of the TLCollapsibleViews will also ask their detail views if the collapse/expansion is allowed if the TLCollapsibleDetailView protocol is implemented. The TLAnimatingOutlineView itself works when in an NSScrollView.

    The code, along with an example project, is hosted on Google Code here. It is distributed under the new BSD license.

    So why is is not ESAnimatingOutlineView, why the TL namespace? Well, I’m working on something big, at the same time as writing Scribbler. Start guessing.

    Update

    I’ve fixed a few bugs in the code, the current version can be checked out of the repository. Fixes include: proper support for hiding subviews of the TLDisclosureBars when the outline view is resized small, a correction to the autoresizing mask of the TLAnimatingOutlineView itself, declaration of keys that the TLCollapsibleView supplies with the animation dictionaries, the delegate of the outline view and subclasses of TLGradientView are no longer unregistered for notifications that client code specifies (i.e. no longer uses [[NSNotifcationCenter defaultCenter] removeObserver:_delegate];).

     
    • Mark Aufflick 14:38 on October 25, 2008 Permalink | Reply

      So happy to hear about the bibtex support! Oh, the animated views will be nice too, and thanks for sharing the example code.

    • Jonathan Dann 17:52 on October 25, 2008 Permalink | Reply

      Hi Mark,

      Thanks for the encouragement! I’m getting really excited about this app. I just hope that I can get it out asap :)

      Glad you like the sample code too. If you do manage to use it, let me know.

    • Brad Gibbs 17:45 on January 14, 2009 Permalink | Reply

      Thanks for the sample code. It’s been very helpful!

      The sample project failed to compile initially. I changed a #import from Espresso/TLGradientView to TLGradientView and it compiled and ran fine.

      I’m trying to integrate your code into an app. I’ve copied and pasted the AppController class in your sample project to an NSViewController subclass in my project. The app compiles and runs, but crashes when I try to expand or collapse an item. The Debugger stops on this line:

      if (![(id)self.delegate respondsToSelector:@selector(outlineView:shouldCollapseItem:)])

      The sample code I downloaded gives a warning stating that AppController may not conform to the TLAnimatingOutlineViewDelegate protocol. I added to my outline view controller, which shuts up the compiler, but the app still crashes.

      Any thoughts on what I might be doing wrong?

    • Markus 23:45 on August 6, 2009 Permalink | Reply

      Great stuff. Downloaded yesterday and works perfectly. One minor issue is the delegate method names set in -setDelegate: of TLAnimatingOutlineView in TLAnimatingOutlineView.m

      In your version they’re all tied to -outlineViewItemWillExpand:, they should be wired to Did/Will Expand/Collapse. This is the fix:

      - (void)setDelegate:(id )delegate;
      {
      if (_delegate == delegate)
      return;
      [self _removeDelegateAsObserver];
      _delegate = delegate;

      if ([(id)_delegate respondsToSelector:@selector(outlineViewItemWillExpand:)])
      [[NSNotificationCenter defaultCenter] addObserver:_delegate selector:@selector(outlineViewItemWillExpand:) name:TLAnimatingOutlineViewItemWillExpandNotification object:self];
      if ([(id)_delegate respondsToSelector:@selector(outlineViewItemDidExpand:)])
      [[NSNotificationCenter defaultCenter] addObserver:_delegate selector:@selector(outlineViewItemDidExpand:) name:TLAnimatingOutlineViewItemDidExpandNotification object:self];
      if ([(id)_delegate respondsToSelector:@selector(outlineViewItemWillCollapse:)])
      [[NSNotificationCenter defaultCenter] addObserver:_delegate selector:@selector(outlineViewItemWillCollapse:) name:TLAnimatingOutlineViewItemWillCollapseNotification object:self];
      if ([(id)_delegate respondsToSelector:@selector(outlineViewItemDidCollapse:)])
      [[NSNotificationCenter defaultCenter] addObserver:_delegate selector:@selector(outlineViewItemDidCollapse:) name:TLAnimatingOutlineViewItemDidCollapseNotification object:self];
      }

    • Jonathan 08:02 on August 7, 2009 Permalink | Reply

      Excellent, I’ll file it as a TODO :)

    • Dan Pahlajani 01:33 on March 8, 2010 Permalink | Reply

      Hi Jonathan,

      This is really fantastic code you have made available to write cool Cocoa apps and is greatly appreciated.

      I also have a couple of questions. Currently, the views are being setup in the awakeFromNib which is perfect but causes a little flashing from the window opens. Is there way that the views can be set in advance to avoid the flashing?

    • Robert Payne 03:03 on April 30, 2010 Permalink | Reply

      I know this is a relatively old post but great work Jonathan,

      I would like to note when using this code in a multi-window application ( I’m currently using it on every window for a document based application ) there is some huge performance hits when creating more than a single window.

      The TLGradientView adds listeners to the window become active / resign active notifications and send those calls directly to “display” which results in massive performance hits.

      The listeners should instead call [self setNeedsDisplay:YES]; instead of directly invoking the “display” command. This increases performance massively and my application can instead open 20 or so windows before feeling the performance hit that was occuring on the first window open.

      • Jonathan Dann 08:30 on April 30, 2010 Permalink | Reply

        Wow, I remember doing that now but I have no idea what I was thinking. You’re right, of course, -[NSView display] is almost always to be avoided.

    • Robert Payne 08:33 on April 30, 2010 Permalink | Reply

      Pretty easy fix. I was having performance issues for past week or so since I implemented the outline view ( which is AWESOME by the way great job! ) and found it was the outline view itself but it took awhile to find out the problem and then how to fix it directly.

    • Mark Aufflick 23:28 on May 20, 2010 Permalink | Reply

      Hi Jonathon,

      a) there’s a minor display glitch when used in a height adjustable context in that the view can be sized smaller than the clip view and thus when the height is reduced (eg. resizing the window) the view get’s hidden behind grey nothingness. The fix is simple:

      *** tlanimatingoutlineview-read-only/Classes/TLAnimatingOutlineView.m Sun May 16 17:33:10 2010
      — ../cocoa/mine/DailyImageWorkflow/TLAnimatingOutlineView.m Thu May 20 22:20:23 2010
      ***************
      *** 91,96 ****
      — 91,103 —-

      for (TLCollapsibleView *subview in [self subviews])
      newViewFrame.size.height += NSHeight([subview frame]) + [self.delegate rowSeparation];
      +
      + if ([self enclosingScrollView]) {
      + NSSize contentSize = [[self enclosingScrollView] contentSize];
      + if (newViewFrame.size.height < contentSize.height)
      + newViewFrame.size.height = contentSize.height;
      + }
      +
      [self setFrame:newViewFrame];
      }

      b) how far did you get with your image adjust view? IKImageView is killing me!

      c) when is Scribbler coming out?!

      Cheers,

      Mark.

      • Mark Aufflick 23:57 on May 20, 2010 Permalink | Reply

        Also I have a patch for the display/setNeedsDisplay: issue – if you want to add me to the google code project I’ll make both changes. My google code username is “aufflick”.

  • Jonathan Dann 10:02 on June 18, 2008 Permalink | Reply  

    Creating iTunes Scrollers 

    Apple introduced new scrollers in iTunes 7 and then moved on to give us the HUD, which many developers want their own scrollers for too. In Leopard, many of us thought that these would come in a nice, shiny box; but as they didn’t we’re all forced to roll our own. The common method is to draw all the components in Photoshop and then make a composite image when subclassing, but now with NSGradient and some nice additions to NSBezierPath all these have become quite easy to do, even for those with little artistic ability.
    (More …)

     
    • Jonathan Watmough 18:14 on September 4, 2008 Permalink | Reply

      Hi Jonathan,
      Interesting post and project. It was funny to run it, because it looks like it’s out by a pixel, but then, looking at iTunes, that now looks wrong to me. Thanks for ruining iTunes for me!
      Anyway, Scribbler sounds like a great idea. I use a really cut down selection of styles to give my documents some regularity in OpenOffice. When using other peoples documents in Word, the generally messed up styles drives me nuts. Will Scribbler have a set of predefined document templates? It seems like the nice TeX output would be great for people who like documents to be formatted in a standard way.
      How are you planning to ensure that a TeX stack exists and is valid on the destination Mac?
      Good luck with being an ISV!

    • Jonathan Dann 20:34 on September 5, 2008 Permalink | Reply

      Hi Jonathan,

      I *think* I know what you mean about it being out by a pixel, is it on the right-hand side of the vertical scroller? If it is then you see it in apps that don’t have a 1-pixel border around their scroll views, so the edge of the scroller is exactly aligned with the edge of the window. You can then see the effect this has when you move the window so it is directly above the desktop after being above another application’s window (if that makes sense). If that’s not what you mean then et me know and I’ll take a look.

      As for Scribbler, I’m working on a set of project templates and document templates to help get people started, but these will grow as they’re added by users. If you have your own, you won’t have to send it to me for inclusion in the app either, just put it in the Scribbler directory in ~/Library/Application Support and Scribbler will find it. If you have any really good templates then please send them along!

      As for the TeX stack, the only part that doesn’t work if there’s no valid distro on the system is typesetting itself. For those that download the app without TeX installed, I’m going to point them to the most current MacTeX distro for simplicity, possibly downloading it and mounting the disk image it for them so all they have to do is install. If I’ve misunderstood your question then please forgive me!

    • Jonathan 03:15 on February 24, 2009 Permalink | Reply

      This is awesome. I especially appreciate the fact that you aren’t using images. I’ve been taking a lot of extra time to draw out my own interfaces lately. I just have one problem now. I realized it after I threw your scroll bars in. My contained table view still has Aqua headers. Know of any other Classes for taking care of that or do i need to get to work? Also I’m planning on modifying this to also accommodate the black/grey scroll bars that you also see in iTunes in addition to others like iMovie. Want me to send you my changes when/if I finish it?

    • Jonathan 09:33 on February 24, 2009 Permalink | Reply

      Hi Jonathan,

      Glad you like them, I’m afraid looking back on them now they need a bit of a redesign! I’ve just been thinking of using black ones myself so, yeah, send them along when you’re happy with them. I’d appreciate it.

      As for the headers, you just have to subclass NSTableHeaderCell. You’ll have to draw both the background and the text but read the 10.5 AppKit release notes, they give you good pointers on using NSBackgroundStyle in cells for the embossed text look.

      I’ll see what I dig up in my own source though as I’m sure I did this a while back.

    • Jonathan Badeen 17:59 on February 26, 2009 Permalink | Reply

      Thanks Jonathan,
      I’ve been working on finessing your scroll bars in addition to adding the dark styled ones. There are still at least a couple things i need to do/improve still. You can see them implemented in my app here – http://www.badeen.com/fastcapture1.png. When I’m done I’ll send it your way. I did have one question though. Do you know how I can go about drawing my own resize corner or just get it to display transparently in the lower right. I essentially would like to get it to look more like it does when there is no scroll bar – http://www.badeen.com/fastcapture2.png

    • Jonathan Badeen 04:56 on February 28, 2009 Permalink | Reply

    • Gustavo 09:09 on September 6, 2009 Permalink | Reply

      Jonathan hello.

      Thanks great example, I wish I understand it better, im a novice ( with some experience already) and I thought this goal wold be easier than I say in the example.. Im trying to implement something similar in my application, but definitely you have gave me a good idea on how to achieve it.

      Must read again to understand the whole of what you are doing in the example… :S

      G.

    • Michael 06:58 on October 6, 2009 Permalink | Reply

      Hey Jonathan.

      Thanks for the amazing NSScrollerView subclass. I’m currently working on a project made to look similar to the itunes store. http://www.publictunes.com/screenshots/pic1.png the vertical scroller works like a charm. Unfortunately the horizontal one appears to have some fundamental drawing errors. I have looked at the code and had trouble grasping how the curves were made that cut into the increment decrement arrows for the slider tracks. If you could please explain this or fix the class it would be much appreciated.

      -Mike

      • Michael 07:00 on October 6, 2009 Permalink | Reply

        Oh i forgot. Here is a blow up of the horizontal slider problems. http://www.publictunes.com/screenshots/pic2.png

        • bryscomat 16:48 on October 26, 2009 Permalink

          I was able to fix this by putting this in the arrowsSetting: method:

          ESScrollerArrowsSetting setting;
          if (self.isVertical) {
          if (NSMaxY([self rectForPart:NSScrollerDecrementLine]) == NSMinY([self rectForPart:NSScrollerIncrementLine]))
          setting = ESScrollerArrowsTogether;
          else
          setting = ESScrollerArrowsApart;
          }
          else {
          if (NSMaxX([self rectForPart:NSScrollerDecrementLine]) == NSMinX([self rectForPart:NSScrollerIncrementLine]))
          setting = ESScrollerArrowsTogether;
          else
          setting = ESScrollerArrowsApart;
          }

          return setting;

        • Jonathan Dann 12:40 on October 31, 2009 Permalink

          Sorry about that. I must have got horribly distracted. I’ll update the code soon! It need s a good looking-at.

        • Simon Strandgaard 10:15 on April 5, 2010 Permalink

          @bryscomat thank you. This solves it for me as well.

          @Jonathan Dann, thank you for putting this awesome project together. Works out of the box.

    • Philipp 13:47 on October 25, 2009 Permalink | Reply

      Hi Jonathan,

      Thank you for the great post and the code.

      What license is the code released under? I looked through the project folder but couldn’t find any.

      Thank you in advance!

      • Jonathan Dann 12:39 on October 31, 2009 Permalink | Reply

        Oh yeah, consider it BSD If you want to credit me feel free, but you don’t have to.

        I need to clean up that code. It’s embarrassingly bad now!

    • Mike 06:17 on January 16, 2010 Permalink | Reply

      Great example! Any pointers on incorporating this into a webview? I know the NSScrollView is dynamic and Im not sure how took over it.

    • Dan Pahlajani 19:55 on February 28, 2010 Permalink | Reply

      Hi Jonathan,

      I have tried to download the code for scrollers on the site you point to. But unless I am a paid user, I am unable to download the files. It is constantly busy with too many users.

      Is there any other way to get access to these files?

      Thanks,
      Dan

    • Amble 13:09 on March 12, 2010 Permalink | Reply

      I was able to fix this by putting this in the arrowsSetting: method:

      ESScrollerArrowsSetting setting;
      if (self.isVertical) {
      if (NSMaxY([self rectForPart:NSScrollerDecrementLine]) == NSMinY([self rectForPart:NSScrollerIncrementLine]))
      setting = ESScrollerArrowsTogether;
      elss
      setting = ESScrollerA4rowsApart;
      }
      else {
      if (NSMaxX([self rectForPart:NSScrollerDecrementLine]) == NSMinX([self rectForPart:NSScrollerIncrementLine]))
      setting = ESScrollrrArrowsTogether;
      else
      setting = ESScrollerArrowsApart;
      }

      return setting;;

    • David Dunham 22:42 on March 31, 2010 Permalink | Reply

      Thanks for your scroller! I managed to get it to work with the lame DoubleBoth style, and wanted to send you the changes. (There was also a bug in isActive.) I couldn’t find a contact e-mail however.

    • Luke 05:59 on May 13, 2010 Permalink | Reply

      Is there anyway to get these scroll bars working on a WebView? Not sure how to assign the ESScrollView to the WebView ScrollView as you can’t access that in IB. Any ideas as I am quite new to Cocoa?

  • Jonathan Dann 16:09 on October 8, 2007 Permalink | Reply  

    How-to: Install MCNP4C2 on Mac OS X 10.4.10 (Intel) 

    MCNP (Monte Carlo N-Particle) is a transport code that is used throughout the physics community to model how particles interact as they travel through a system. The code is quite old, and therefore requires tweaking to get it running on newer systems like Mac OS X 10.4.10. There are programs and compilers it needs to use when installing that aren’t included in Mac OS X anymore due to their age, and a few that are on the Mac OS X CD that came with your computer, but aren’t installed by default. The first things we need are:

    A FORTRAN-77 compiler and a ‘C’ compiler of the same version.
    The ‘fsplit’ program.
    X11 installed.
    The XCode tools.
    (More …)

     
    • Jack 20:29 on October 15, 2007 Permalink | Reply

      Thanks for the post, I’ve been trying to install MCNP on my machine for a few months now with no luck. I have MCNP5/MCNPX, do you know if the installation procedure is the same?

      Thanks,
      Jack

    • Jonathan Dann 21:03 on October 15, 2007 Permalink | Reply

      Jack,

      Unfortunately not, I haven’t had the pleasure of using MCNP5 or X as my hospital doesn’t have the license for them. I think 5 is on order at the moment, but could take years! From what I’ve read you might need the Absoft or IBM FORTRAN compilers, and I think both have a free trial. The g77 (FORTRAN compiler) stuff I wrote about isn’t tested with MCNP5/X, and neither is MCNP4 tested on Mac OS X, nor is the g77 normally available for Intel Macs. Took me weeks to find out how!

      I think the new ones were built with the Mac in mind though and a quick Google search came up with

      http://www.nea.fr/abs/html/ccc-0730.html

      However, it doesn’t say if it was tested on Intel, but the use of the IBM FORTRAN 90 compiler suggests it was an older G4 or G5 (PowerPC) machine.

      Keep subscribed to the post, you never know when I’ll get MCNP5 from my hospital, I’ll post a comment if I get it working. And thanks for saying thanks!

    • Jonathan Dann 21:05 on October 15, 2007 Permalink | Reply

      Also, give it a try, the key is to use the same versions of g77 and gcc (which I did above) if you get any weird log errors after trying it with those two compilers, send me the log and I’ll have a look.

    • Tad 19:10 on October 23, 2007 Permalink | Reply

      Just wondering if there was any follow-up from Jack? I’ll be trying to install MCNP5/X on an Intel Mac shortly as well and wondering if he tried it with the compilers you mentioned… Thanks too for the article–very informative!

    • Jonathan Dann 19:47 on October 23, 2007 Permalink | Reply

      Hi Tad,

      No follow-up at the moment unfortunately! Would be worth checking back here every now and then. One day I’ll get the 5/X upgrade too.

      And you’re welcome for the tutorial :)

    • xiaoyu 20:19 on October 25, 2007 Permalink | Reply

      I don’t know what any of that was about! Yay!
      But I love you.

    • Jack 22:35 on November 1, 2007 Permalink | Reply

      Hi Jonathan,

      Thanks for the help. I’ve been pretty busy at work and haven’t had any time to try to set this up. I’m hoping to get a chance within the next few weeks. As soon as I try, I’ll let you know the results.

    • Jonathan Dann 15:25 on November 14, 2007 Permalink | Reply

      Just so everyone knows, I updated this with a little fix to the fist set of terminal commands. Was a stupid mistake, if you’ve had problems, try again. Gonna try with Leopard tonight!

    • Elton 00:51 on July 14, 2008 Permalink | Reply

      MCNP4C, ola alguem pode me ajudar instalar MCNP4C no windows

    • Phil 16:10 on September 9, 2008 Permalink | Reply

      Hey Jonathan,

      Thank you for what seems to be the only tutorial online on how to install this for the Mac! I have followed your directions and have hit a snag at the install stage and would appreciate your advice. I get the following error message shown below.

      Many thanks,

      Phil

      aluminium SU >chmod a+x ./install
      aluminium SU >./install linux mcnp

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % Time %
      % Run the SETUP program … (1-2 min.) %
      % %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      ./install: line 41: ./mcsetup: No such file or directory

      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      % %
      % SETUP ERROR OR USER ABORT. % Tue Sep 9 15:46:53 IST 2008
      % %
      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    • Jonathan Dann 11:31 on September 11, 2008 Permalink | Reply

      Hi Phil,

      Yeah I struggled to find a how-to for ages until I realized that I had to work it out myself. It a bugbear of mine that the opensource/scientific community often keep the entry level too high for end-users.

      As for the problems you’re having I’d love to help but my MacBook Pro died two days ago and I’d in for repair so I can’t look at the directory structure as the install is taking place.

      Your error (forgive me if you know this already) means that mcsetp is not located in the current working directory (signified by the ./). Now it’s been a while and I can’t be sure as I can’t work through the install again at the moment but the mcsetup file is copied to your hard disk when unzipping the MCNP distribution when you begin (the part with the gunzip command).

      From your output it seems that you’re current working directory is / rather than (for example) /Applications/mcnp/mcp4c2. But as the install has begun I’m guessing that I’m wrong in thinking this.

      So first check that the folder with install also contains mcsetup. If not, then I’d start again making sure that the unzip process works properly.

      Let me know if this helps.

    • Andrew Davis 12:34 on December 8, 2008 Permalink | Reply

      Phil

      The ./install compiles a fortran program to get things rolling, it looks like either your g77 doesnt exist or you need to edit the installer script. If you have gfortran installed rather than g77, then edit the ./install and replace g77 with gfortran.

      In fact thats true throughout Johnathan’s guide. If you do the above, the installer will start, and then fail. Edit the makemcnp script and replace g77 with gfortran, also remove the “./” from fsplit.

      Run makemcnp and then you’re done.

      Hope that helps

      Andrew

    • Hywel 17:13 on August 11, 2009 Permalink | Reply

      Thanks! That recipe worked a treat! I’m now happily watching ZX Spectrum graphics of reactors in X11 on my MacBook.

    • Joel Turner 15:59 on August 18, 2009 Permalink | Reply

      Hi, thanks very much for this guide. I do have one question – when running mcnp4c2 on my Macbook, the nps and ctme cards don’t appear to work, as in the code never terminates! I’ve tried it on a couple of macs with the same result. Was just wondering if you had any ideas??

      Cheers!

    • Jonathan Dann 16:05 on August 18, 2009 Permalink | Reply

      I’m afraid not, I used to have them working fine on my MacBook Pro. To be honest its a while since I’ve done MCNP. I seem to remember such a problem once, but I think my code was just wrong :S

      Sorry.

    • Joel Turner 17:11 on August 18, 2009 Permalink | Reply

      Just realised what the issue is. It seems to need a blank line after the NPS command on Mac to be recognised. Not sure if notebook adds this automatically on windows or what!

    • Jonathan Dann 17:40 on August 18, 2009 Permalink | Reply

      That rings a bell. You have to be very careful with line endings with 4C2. Smultron and TextMate can harmonise line endings for you.

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel