Calc Scripts

<p>Hello,  I am new to Essbase and calcscripts as well as this discussion board. I have been reading a calc script in hopes of optimizing itsince it seems to take longer than anticpated.  Someone elsewrote it but I am trying to figure if parts of it are really doinganything except taking up time.  The following snipet is whatexactly I am curious about.</p><p> </p><p>**I have placed comments amongst the calc script to specifyareas that I am unclear about.</p><p> </p><p>Fix(currentyear, financial, CalcMAct)</p><p>SET AGGMISSG OFF;</p><p>Fix (HEL, Init, "NoMfgS", @RELATIVE("TotSellMeth", 0))<br>     DataCopy "HEGS" TO"GoodS@L";<br>     DataCopy "HECS" TO"GoodP";</p><p>     // Why fix here when nothing seems tohappen below and a new fix proceeds it after the last endfix?<br>      Fix ("GoodS@ L","GoodP")  <br>          @IDESCENDANTS(UB88);  // To me this doesn't seem to be doing much<br>      EndFix<br>EndFix<br>SET AGGMISSG ON;</p><p><br>Fix (@RELATIVE (UB88, 0))  //Is this doing anything since anew fix comes right after it?</p><p>//  I understand this fix because it is fixating andcopying but don't understand how the other fix helped get to thispoint.<br>Fix (@RELATIVE ("TotSellMeth", 0), @RELATIVE("TotMan", 0))<br>      DataCopyWorking->Init->"GoodQ" TOAct->Init->"GoodQ";<br>EndFix<br><br>Fix (Act, Init)  //  What is this doing if another fixproceeds right after it?<br><br>Fix (@RELATIVE ("TotSellMeth", 0), @RELATIVE("TotalMan", 0))</p><p>.</p><p>.</p><p>.</p><p>.</p><p>As I stated I am a newbie and I am not sure if those fixes I hadcomments on are indeed necessary or if they are just loadingdatablocks into storage and not being used to really fixate onanything.  I was under the impression from a course I took athyperion that to fixate on a particular datablock you use one fixor nested fixes.  </p>

The line which you don't think is doing anything is applying the member calcs (from the outline) to the descendants of UB88. When a member name is placed by itself as a statment, it means to use the calculation that is in the outline, basically as a calc of that item at the time it is called, nesting it in the fix as it is simply means that there is a datacopy (probably to create blocks) and then a focus forther in on the two dimesions and recalcing Descendents of UB88.<BR><BR>Nesting fixes like this is not an unusual way of doing things. I might fix on a date in a single fix statement, then nest a couple of other fixes on other dimensions within the first fix, maybe doing sonething different in different regions.

Similar Messages

  • How do you stop multiple users executing the same calc script at the same time?

    We have an issue when  users uplaod a spreadsheet and then run a calc script. at one time we have multiple exectuions of the script running.
    This slows up the system and we have to go cancel all the executions and run it again.
    Can we stop this and put them on a queue, so only one execution of the calc happens at one time. Or stop multiple executions getting submitted at all.

    You could use EXCLUSIVECALC to stop more than one calc running at the same time, although this will apply to all applications on your server.  And it doesn't just stop the same calc being launched twice.  Easier than the alternatives I can think of though, if it works for you.

  • @ATTRIBUTESVAL works properly in Calc script but not in Member Formula.

    We are using Essbase 11.1.2 –
    "Global_Period" is a Dynamic Calc Member. Below is its Member Formula:
    "ProjType " is an attribute (text) dimension.
    "Global_Period" ="ValidAccount";
    IF (@ISLEV ("Total_Expenses", 0) AND @ISMBR("HSP_InputValue") AND @ISLEV ("Version",0) AND
    @ISMBR("No_GL_Account") AND @ISLEV ("Scenario",0) AND @ISLEV ("Years",0) AND @ISMBR ("Local")
    AND @ISLEV("Tot_Org",0) AND NOT @ISIDesc ("Service_Division") AND @ISLEV("Tot_PRJ",0) )
    "Global_Period"->"No_GL_Account"-> @CURRMBR ("Projects") =
    1* "ValidAccount"->"Global_Version" ->"Global_Scenario"->&Budget_Year->"Global_Entity"->
    "No_GL_Account"->"HSP_InputValue"->"Local"->
    @MEMBER(@NAME(@CONCATENATE ("Proj_",@ATTRIBUTESVAL("ProjType"))));
    ENDIF
    The above Member- Formula is failed to work when opening a Data Form that contain "Global_Period".
    The error messages in the log file are as follow:
    [Thu Mar  1 16:55:39 2012]Local/Projects/Plan1/admin@Native Directory/1122748736/Error(1200370)
    Error executing formula for [Global_Period] (line 1): attempt to cross a null member in function [@X]
    [Thu Mar  1 16:55:39 2012]Local/Projects/Plan1/admin@Native Directory/1122748736/Error(1200370)
    Error executing formula for [Global_Period] (line 0): attempt to cross a null member in function [@_VAL]
    When converting the "Global_Period" to be a Store member.
    The Calc Script below is exactly equivalent to the Formula, and run perfectly with no Errors.
    "Global_Period" ="ValidAccount";
    FIX ("HSP_InputValue", "Local","No_GL_Account", @RELATIVE ("Total_Expenses", 0),
    @RELATIVE ("Version",0), @RELATIVE("Scenario",0), @RELATIVE ("Years",0),
    @REMOVE (@RELATIVE ("Tot_Org",0),@IDESCENDANTS ("Service_Division")),
    @RELATIVE ("Tot_PRJ",0))
    SET CREATENONMISSINGBLK ON;
    "Global_Period"
    ("Global_Period"->"No_GL_Account" -> @CURRMBR ("Projects")=
    1* "ValidAccount"->"Global_Version" ->"Global_Scenario"->&Budget_Year->
    "Global_Entity"->"No_GL_Account"->"HSP_InputValue"->"Local"->
    @MEMBER(@NAME(@CONCATENATE ("Proj_",@ATTRIBUTESVAL("ProjType"))));
    SET CREATENONMISSINGBLK OFF;
    ENDFIX
    For many reasons we prefer to use the Dynamic Calc Formula for "Global_Period".
    As result of some checking I discover that the problem is with the function @ATTRIBUTESVAL,
    because the formula has worked fine when I replace the @ATTRIBUTESVAL with a string.
    Please help, what is the right way to write the formula in order to make it work.
    Thanks
    Tami Kedem

    Dear Cameron Lackpour,
    Thank you very much, for your reply.
    I'd given it a try, but it didn't help.
    The purpose of this formula is as follow:
    We holds 1's (ones) for allowable combinations of "Project_Type and Accounts", namely, each project type has different list of accounts that are allowed for input.
    I need to populate the input 1's to all projects (and their children) according to its "ProjType".
    The Data forms has periods in columns, thus by putting "Global_Period" (Hide) as the first column, and use "Suppress Missing rows" - for each project (on the "Page") , the form will show just the allowable Accounts in rows.
    (we have around 300 Accounts, 50,000 members in Project dimension and around 25 Types of projects).
    Please help.
    Thanks!
    Regards,
    Tami Kedem

  • IF Statement with multiple ORs in Calc Script

    Hello,
    May I know what is the best way to script the following statement in a Member formula, not calc script (can't use Fix statements)
    If (A->B->C == 1, 3 or 5 AND X->B->C == Value1)
    returnvalue1
    ELSE
    #Missing.
    Basically I am looking for syntax for an IF statement where IF one condition is equal to multiple values as mentioned, then the result is this...
    Help is much appreciated.  Thanks.
    Adi

    You won't be able to use a comma separated list, you'll have to repeat the combination. A->B->C == 1 or A->B->C == 3 so on and so forth
    If you can give a use case scenario or the logic behind it then there are more chances that you might end up with a nicer solution.
    Regards
    Celvin

  • How to make a calc script on a dense dimension ?

    Dears,
    I want to make a calculation script on a dense dimension where :
    - I want to get an input from a member, then make a mathematical calculation , then populate the result in another member at the same dimension .
    For More Clarification :
    I have the following fix
    CALC ALL ;
    FIX ("SAR","Working.V01","Budget2012","FY12","G_10","NM_CAT01","Employee General","BegBalance")
    "Internal Transportation" = "Monthly Transportation"*30 ;
    ENDFIX
    -Internal transportation and monthly transportation are 2 members on FB_account dimension (dense dimension) .
    Waiting for your response, Thanks in advance.

    Dear ,
    I appreciate your feedback . But, My problem is that after executing the calc script , No calculation happens .
    by another means ,
    -If I wrote "Internal transportation" = 500 ; --> It put 500 in it
    -If I wrote "Internal transportation" = "Internal transportation" * 100 ; --> No calculation happened but it executed successfully
    -if I wrote "Internal transportation" = "Monthly transportation" = 500; --> No calculation happened but it executed successfully
    I don't know Why ???

  • The export file from a calc script - naming and date/time stamp

    Here is a simple calc script to export data.
    2 questions:
    1. Is there an easy way to add a date/time stamp on the name of the data file so that it does not overwrite the older ones every time?
    2. I tried to specify the path so that it write to another server. "\\mfldappp011\E:\Exp_AW.txt". It's not working. How should I specify the path ?
    Fix (@Relative("Yeartotal",0),"Actual","Working",&ActualYear);
    Dataexport "file" "," "C:\Exp_AW.txt" "#MI";
    EndFix;
    Edited by: user9959627 on Sep 7, 2012 11:25 AM

    Probably easiest to call the maxl script from a command line script, then rename the exported file to include the tme stamp and copy/move it to a location.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Assigning a value to a constant in Calc Script

    Hi All,
    I'm trying to assign a value to a constant in a calc script, but not able to make it work.
    I need to get a user entered value from the database such as Indexation Value, and use that many times in my script. Rather than use:
    "member1"->"member2"->"member3"->"member4"->"member5"
    every time I access the value, I'd like to use:
    VAR IndexVal = "member1"->"member2"->"member3"->"member4"->"member5";
    and then use IndexVal in the script.
    Is this possible?, or do I have to use a substitution variable?
    Thanks.

    It is possible, but the variable and the calculations that use it must exist in the same Calc Bloack statement (Beginning and ending in parens)

  • An error ocurred while running the specified calc script. Check the log...

    Hi,
    I get the following error when I use the "Mass Mllocate" of hyperion planning (11.1.1.3) , specifically when i try to use "Spread Type" and select "Relational Spread".
    I check the log for details, i see the following messages:
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1013162)
    Received Command [Calculate] from user [admin]
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1200481)
    Formula for member [FY11] will be executed in [CELL] mode
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Error(1200315)
    Error parsing formula for [FIX STATEMENT] (line 24): invalid object type
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Error(1012001)
    Invalid Calc Script syntax [
    FIX ("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","42300007","CC_054","CIA_063","PPTO","TRABAJO","S_241","S_251","S_252","S_253","S_254","S_255","S_259","S_260","S_227","S_228","S_229","S_230","S_231","S_232","S_233","S_234...]
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Error(1200421)
    Error encountered on or after line [25]
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1020055)
    Spreadsheet Extractor Elapsed Time : [0] seconds
    [Mon Mar  5 17:34:18 2012]Local/TCM/VtaCto/admin/Info(1020082)
    Spreadsheet Extractor Big Block Allocs -- Dyn.Calc.Cache : [0] non-Dyn.Calc.Cache : [0]
    But i can not identify which calculation is referenced and that I understand is what is failing.
    Could guide me about that would have to check to find what is generating the error.
    Thanks in advance!!!

    Hi,
    One problem is that I can not identify the script because it was not created by me, as I understand this calc is implicit in planning, only runs when you select the option "mass allocate".
    The published extract was obtained from the log of the application in which the calculation is running, this was extracted from essbase directory that hosts the application.
    Hector Ortega

  • OBIEE 11g write back to Essbase and run calc script feature

    Hi,
    I have a requirement to write back into Essbase Cube and run calc script from OBIEE dashboard.
    From what i have search on google, we must deploy additional Java Script into weblogic, but that is before OBIEE 11.1.1.6.
    I have 2 question:
    - Does OBIEE 11.1.1.6 already supported native write-back to Essbase and running calcscript?
    - Anyone has example of the custom java-script for write back and running calcscript?
    And another, if there are requirement like this, is it better to install Essbase Add-in on Microsoft Excel and do the what-if analysis there, then just display the report on OBIEE dashboard? (based on user-friendliness and the complexity on maintenance)
    Thanks in advance.

    Hi,
    Even I am trying to achieve the same thing as you have mentioned but think that it is not possible to achieve easily in obiee 11.1.1.6, though we do have a work around to perform a writeback in Essbase cube using JAPI as mentioned below.
    Also we can call Hyperion reports from OBIEE using Action Links and also pass parameters to the same but dont know if it runs calculation script.
    Below link could be useful for you for write back workaround.
    http://oraclebizint.wordpress.com/2009/05/25/oracle-bi-ee-10-1-3-4-1-writebacks-to-essbase-using-japi-and-custom-html-part-1/
    Let me know in case you have found out anything else related to same.
    Thanks,

  • Error while running Business Rules and Calc scripts

    We are trying to run calc script in a report and we received the error saying that " An error occured while running the specified cacl script.Check the log for details", we received the similar error when working with Business rules.
    This started when we tried to point JVMMODULELOCATION in essbase.cfg to null from its existing link to a java path.
    This error persists even after we changed the config file to its original one.
    Hyperion 9.3.1
    Oracle 10g
    Weblogic 9
    Solaris 10 64 bit
    john , please help. i will provide ytou with the exact error messages.. please tell me what this means ---> This started when we tried to point JVMMODULELOCATION in essbase.cfg to null from its existing link to a java path
    what is that JVMMODULELOCATION for??
    thankyou,
    Rciky

    Hi,
    Here is details on what the JVMMODULELOCATION is :- http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_esb_techref/techref.htm
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Calc scripts are running slow(all of a sudden)

    All of a sudden, for the past few days, we are noticing that all our calc scripts have been running very slow.
    The same scripts used to run much faster earlier.
    Has anybody seen this kind of scenario?
    We did a RAM upgrade on the eas server, and have restarted all services.
    Other than that, nothing has changed in our system.
    Thanks.

    It can be quite common for calcs to slow down over time, but there are some things to do to mitigate this.
    1. Are you using Intelligent Calc? All things being equal (a very broad statement in essbase, since things are never equal) if there is more activity by users, it could affect how many blocks are marked dirty. This is probably not your issue, because a properly written calc wouldn't slow down much for this reason. I had to mention it though because I have seen an installation where their calc was 'Calc All' and they used intelligent calc to create the scope of the calc. (bad, very bad)
    2. Do you perform DB restructures? (either explicity by Restructuring or by exporting level 0, clearing and import level 0 then agg) If this is not done on a regular basis (regular depends on the usage of the cube) then you could be experiencing fragmentation, which increases the size of the database, increasing run times.
    3. Have you just added another fiscal year to the database? More data means bigger database.
    RAM upgrade on the EAS server shouldn't affect calc times (unless essbase services are also running on the EAS server, then there might be something to it).
    Most of these (and other) issues can be mitigated by applying proper scope to your calcs (Fix statements).
    What environment are you running in? Windows or Unix?
    New application?
    What kind of time increases are we talking about here?
    Robert

  • DATAEXPORT - set Dynamic File name in Calc Script

    Hi,
    I have a calc script which exports data from BSO cube to a flat file. Currently I have hard coded file name within the calc script which is
    DATAEXPORT "File" "," "D:/in/CAPXPT_FERC_*FY12*.txt";
    and, for example, I want use the substition varaible to dynamically assign the file name let' say
    DATAEXPORT "File" "," "/u11/oracle/OHDDEVD/in/CAPXPT_FERC *" + &fYear + "*.txt";
    Is there any way to set the export file name dynamically?
    Thanks for your help
    Regards,

    A kind of intriguing thought would be to use the sub var as a way to drive the file name, then grab Robb Salzmann's CDF to dynamically set sub vars on the fly, and then use a RTP to grab that string. I have no idea if this would all tie together, but it would be interesting to try.
    Here's Robb's post: http://codingwithhyperion.blogspot.com/2011/08/create-and-update-substitution.html This is my second in a row post that refers to his CDF -- it is almost like that's my pseudonym except of course I'm too thick to write a CDF.
    Regards,
    Cameron Lackpour
    Edited by: CL on Sep 20, 2011 10:36 AM
    Spelling. Arrgh.

  • Unable to execute the substitution variable in calc scripts in essbase 11.1

    Unable to execute the substitution variable in calc scripts in essbase 11.1.3
    FIX(&CURRVERSION,COLA)
    Unit=units*Listprice;
    dataexport "file" "," "E:\NEW.TXT";
    ENDFIX
    Error: 1200471 Error parsing formula for FIX STATEMENT (line 1): expression expected before [)]
    This is error it throws when executing the calculation script
    I wonder whether its a problem with substitution variable i want to know wat went wrong inside the fix statement
    I have created substitution variable use maxl
    Installed the essbase in custom manner and standlone mode nt register with the shared services ,
    Is this problem with the custom installation of essbase
    Regards
    shenna

    If you remove the substitution variable and replace it with the actual value (whatever that is), does the code work? That will tell you if the issue is around the substitution variable or not.
    John -- First you race Glenn, then you race me -- and you always win. :)
    Regards,
    Cameron Lackpour

  • Peculiar problem with Essbase (Calc Script) - substitution variable / UDAs

    This is odd but I have a script like :
    VAR iloop=1,break=0;
    FIX(<required POV>)
    Loop (20,break)
    VAR Country_total1,Country_total2,Country_total3;
    FIX (@UDA(Entity,@ALIAS(@CONCATENATE("&Country",iloop)))) // &Country1, &Country2 - are substitution variables with UDAs stored as strings
    Statements;
    /* +<statements for calculating total values.. for that country and stored against variables>+ */
    Country_total1=Country_total1+ +<Calculation>+
    ENDFIX
    /* Second part : Now again the calculations stored in the variables are to be stored against specific entities */
    FIX (@UDA(Entity,@ALIAS(@CONCATENATE("&Country",iloop))))
    FIX(@ISUDA(Entity,<Check1>)
    ..... Assign to relevant account
    ENDFIX
    ENDFIX
    ENDLOOP
    ENDFIX
    Now the problem is that the first fix statement works just fine, but the FIX statement in the 'second part' throws an error
    Error: 1200354 Error parsing formula for [FIX STATEMENT] (line 66): expected type [STRING] found [EXTVAR] ([iloop]) in function [@CONCATENATE]
    If I hard code the 'second part' FIX statement to the substitution variable directly - it works just fine.
    How can the first statement work and not the second one ? They are exactly the same.

    Glenn, thanks - I hadn't thought of that :).
    But it still does not entirely solve my problem (please see my previous post depicting a requirement similar to ours )
    - We have lots of countries (50-60+ might be much more) and each country can have multiple entities (3-4 on an average - can go unto 7-8)
    - so good guess would be around 200 entities
    - So say I have to do it for 2 countries only (two entity types). Then I need 4 variables - 2 for each country ('country 1 ET1 total', 'Country 1 ET2 Total')
    When the list is 20 counties - variables become 40 :(.
    - Still leaving aside the 40 variables for a bit -
    There are subsequent steps of calculations which needs to be done based on these totals (which are exactly the same for all countries) - just that we need the correct totals to begin with and the rest is already stored in the DB
    So since I have a different variable for each country - I cannot write one single calculation block to use the variables sequentially one by one (can I ?)
    I might have to write a separate calculation block for each of these countries. (20 separate blocks)
    That's what I was trying to avoid and simplify with the substitution variable (but is not working)
    - Create substitution variables - which would store the alias of the required countries (2/10/20 as many required)
    - Loop through these substitution variables - using them one by one
    - So I just need one single block of calculation with all the variable in the calc script being reused after each country calculation is done
    - and the user need not go into the script, as the only thing that will change are the countries. And he can change it easily through the substitution variable.
    Edited by: Ankur on Jun 27, 2012 12:53 PM

  • Problem with Dynamic Calc members in calc script

    Hi
    i wrote a calc script which calculates the value of acct2 which is dependant on the value of acct1 that is calculated from acct0 as bellow:
    FIX(
    M1
    acct1(
    acct1=acct0->M2;
    acct2=acct1->M2;
    ENDFIX
    the value of the intersection of M1->acct0 is 100 as input ,what i wanted from this calc script is the acct2->M1 to be 100 after executing the script once
    but the fact is i have to run it twice to get the expected result.
    the outline is like this:
    M:
    M2 Dynamic calc M2=M0+M1
    M0 Stored
    m1 stored
    Account:
    acct0 stored
    acct1 stored
    acct2 stored
    Can anyone tell me the reason and how to solve it?
    Edited by: user10450070 on 2011-1-25 上午1:38

    Is acct1 correct after one run of the calculation, but acct2 incorrect? If so, it's because Essbase is calculating them both at the same time (parallel), whereas it has to be forced to calculate acct1 first and acct2 second. You can do this with separate fixes as below:
    FIX(M1)
    acct1=acct0->M2;
    ENDFIX
    FIX(M2)
    acct2=acct1->M2;
    ENDFIX
    Or, you can you can force it into calculating in serial mode:
    SET CALCPARALLEL 0;
    FIX(M1)
    acct1=acct0->M2;
    acct2=acct1->M2;
    ENDFIX
    Sabrina
    Edited by: SabrinaD on Jan 26, 2011 7:56 AM

  • Maxl doesn't logout after Calc Script execution

    Hi All,
    I have a batch script which runs to load data and then aggregate data using calc script. Maxl completes the load and then starts the calculation execution but this never ends. I tried looking into the logs and it shows that Calc Script executed but it won't log off the user and so the next process of the batch doesn't kick-in.
    Application Logs:
    Thu~May~20~12:40:36~2009~Local~****~****~hadmin~Info~(1012579)~Total Calc Elapsed Time for ~Agg.csc~ : ~1008.66~ seconds
    Thu~May~20~12:40:36~2009~Local~****~****~hadmin~Info~(1013274)~Calculation executed
    Thu~May~20~12:40:36~2009~Local~****~****~hadmin~Info~(1019018)~Writing Parameters For Database ~[****]
    Can anyone suggest me how to resolve the issue. Thanks...

    Hi Cameron,
    The script which you had given was running just great in Dev with very less data, as the aggregation was just taking 10mins but when I moved the scripts to QA where it loads data from Prod, the aggregation takes almost 2 hours to run and just as the calc script finishes it throws an Network error and Maxl doesn't end the agg script and hangs there and is forced to log off from console after 60mins of inactivity. The hang doesn't let the batch to start the next process.
    Network error for app logs:
    Tue Jun 2 06:31:51 2009 Local TinP TinP hadmin Info (1012579) Total Calc Elapsed Time for Agg.csc : 7210.71 seconds
    Tue Jun 2 06:31:51 2009 Local TinP TinP hadmin Info (1013274) Calculation executed
    Tue Jun 2 06:31:51 2009 Local TinP TinP hadmin Info (1019018) Writing Parameters For Database TinP
    Tue Jun 2 06:31:51 2009 Local TinP TinP hadmin Error (1042013) Network error 104 : Cannot Receive Data
    Tue Jun 2 07:34:23 2009 Local TinP Info (1013220) Supervisor CONSOLE has forced user hadmin to logout
    Can you suggest something. Thanks...

Maybe you are looking for

  • Reset BPF step status for some of the company only

    Dear all,    For example , we got 5 steps.    All the companies finish to step 3.    The step 1 and 2 has been locked.     Suddenly, one of the company have to do some modification from step  2.    Is it possible to unlock step 2 for that company onl

  • TrackPad problem for curve 9300

    Dears, I have bought a new BB curve 9300 more than a month ago from UAE and i am having a problem with the trackpad the sometimes it needs several touches to direct me up, down left or right , i tried the sensitivity from the BB SW but it has nothing

  • Make files available offline?

    can i make files on my external hard drive connected to an airport extreme available offline?

  • I desperately NEED the trial version for school

    I desperately NEED the trial version for school but on the Adobe site it says it's not available until July! Can anyone help me PLEASE????? I need the mac CS3 trial. thanks (crossing my fingers)

  • Which Macbook Pro should i buy, 13" or 15" SSD or HDD or flash drive?

    I'm a Graphic Designer, and looking to buy a new Mac. Believe it or not, i've been using a Powerbook G4 for more than 10 years, the best of its kind, until recently the Hard drive died and the OS on the computer can't be upgraded any more. I can stil