"who am I" for functions?

With custom tags, there's a 'ThisTag' variable. Is there an
equivalant for functions? How does a function know who it is? The
'this' scope seems to call the parent, and the function's name is
present in the local 'variables' scope, but there's nothing to
indicate who is is. Any suggestions?

Hi,
1. Which positions i have to look for? EP Portal consultant / HR consultant / ABAPer .
You'll find it difficult to find a job as HR consultant as you have primarily worked in development roles and not in configuration ones. Since your focus so far has been ABAP/BSPs, you will find it easier to find an ABAP developer role. As far as EP Development Consultant is concerned, usually some JAVA knowledge will be demanded if you intend to apply for these roles. Occassionally, your BSP knowledge will do. So if you have the relevant knowledge, it shouldnt be a problem as well.
2. is BSP hot in the market ?
Its a nice to have and may be searching for jobs in your area will confirm if there is good demand for this.
Hope this helps.
Regards

Similar Messages

  • Who is responsible for integration of the different function modules?

    Hi All,
    Please tell me who would do rather who is responsible for doing the following kinds of integrations SD-MM-FICO, SD-MM, SD-FICO and so on? What would be the role of ABAPers in these kind of integrations?
    Regards,
    MD

    Hi MD,
    The functional team (from each module that is implemented) from the Implementation team along with the CORE team from the client end, together are responsible for carrying out the integration (testing).
    Any defects identified are to be fixed by the implementation team consultants. ABAP consultants are required to carry out any investigation/debugging required to fix the issues identified (if they are ABAP code related).
    Hope this clarifies.
    Best Regards,
    Shyam

  • Who's Up for a Challenge? (or who needs a good Color Picker?)

    Greetings,
    I got lost in the muck trying to figure out how to make this color-picker code initialize with the last chosen color.... This is an open source project, and I posted my predicament on the blog for it, but it's been a few weeks and no one has responded. I've been able to integrate the code with my project no problem, it's just figuring out how to change this one behavior... the startup color seems to be hardcoded in several different places...
    Seems like there's some folks here who enjoy a good challenge, so I thought I'd see if anyone might want to give it a shot.... I'm probably making it much more complicated than it is by starting from the wrong vantage point....
    The Blog: http://www.v-vent.com/blog/?p=27
    The Code: http://www.v-vent.com/source/hue/veventhuesource.zip
    Any clues you have to offer would be greatly appreciated.... the idea seems simple enough....currently starts on yellow every time you load the view... would like it to start on the last color chosen, which is getting stored in user defaults....

    Ok John, here are each of the three files I touched:
    // ColorPickerViewController.m
    #import "ColorPickerViewController.h"
    #import "ColorPickerView.h"
    #import "AboutScreenViewController.h"
    @implementation ColorPickerViewController
    @synthesize aboutScreenViewController;
    // --> added const decl
    NSString *const keyForHue = @"hue";
    NSString *const keyForSat = @"sat";
    NSString *const keyForBright = @"bright";
    // --> register default settings
    - (void)registerDefaults {
    NSMutableDictionary *defaultValues = [NSMutableDictionary dictionary];
    [defaultValues setObject:[NSNumber numberWithFloat:0.5] forKey:keyForHue];
    [defaultValues setObject:[NSNumber numberWithFloat:0.5] forKey:keyForSat];
    [defaultValues setObject:[NSNumber numberWithFloat:0.5] forKey:keyForBright];
    [[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
    - (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"CALL ME ! " );
    [self registerDefaults]; // <-- register default settings
    NSUserDefaults *saveColors = [NSUserDefaults standardUserDefaults];
    ColorPickerView *theView = (ColorPickerView*) [self view];
    // --> removed key existance test and explicit defaults from this block
    // since defaults are now registered
    [theView setCurrentHue:[saveColors floatForKey:keyForHue]];
    [theView setCurrentSaturation:[saveColors floatForKey:keyForSat]];
    [theView setCurrentBrightness:[saveColors floatForKey:keyForBright]];
    AboutScreenViewController *abouter = [[AboutScreenViewController alloc]
    initWithNibName:@"AboutScreenView" bundle:nil];
    self.aboutScreenViewController = abouter;
    [abouter release];
    [theView onViewDidLoad]; // <-- added
    - (void) viewWillDisappear :(BOOL)animated {
    NSUserDefaults *saveColors = [NSUserDefaults standardUserDefaults];
    ColorPickerView *theView = (ColorPickerView*) [self view];
    [saveColors setFloat:[theView currentHue] forKey:keyForHue];
    [saveColors setFloat:[theView currentSaturation] forKey:keyForSat];
    [saveColors setFloat:[theView currentBrightness] forKey:keyForBright];
    - (UIColor *) getSelectedColor {
    return [(ColorPickerView *) [self view] getColorShown];
    - (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
    // Release anything that's not essential, such as cached data
    - (IBAction) pressedAboutButton {
    [self.view addSubview:self.aboutScreenViewController.view];
    [self.view bringSubviewToFront:self.aboutScreenViewController.view];
    - (void)dealloc {
    [super dealloc];
    [aboutScreenViewController release];
    @end
    // ColorPickerView.h
    #import <UIKit/UIKit.h>
    @class GradientView;
    @interface ColorPickerView : UIView {
    GradientView *gradientView;
    UIImageView *matrixView; // <-- added
    // --> unused ivars
    // UIImage *backgroundImage; //Image that will sit in back on the view
    // UIImage *closeButtonImage; //Image for close button
    // UIImage *nextButtonImage; //Image for next button
    IBOutlet UIImageView *backgroundImageView;
    IBOutlet UIView *showColor;
    IBOutlet UIImageView *crossHairs;
    IBOutlet UIImageView *brightnessBar;
    IBOutlet UILabel *colorInHex;
    IBOutlet UILabel *Hcoords;
    IBOutlet UILabel *Scoords;
    IBOutlet UILabel *Lcoords;
    IBOutlet UILabel *Rcoords;
    IBOutlet UILabel *Gcoords;
    IBOutlet UILabel *Bcoords;
    //Private vars
    // --> ok, private.. but atm, the controller still needs to call getters
    // and setters for currentBrightness, currentHue, and currentSaturation
    @private
    // CGRect colorMatrixFrame; // <-- removed - using matrixView ivar instead
    CGFloat currentBrightness;
    CGFloat currentHue;
    CGFloat currentSaturation;
    UIColor *currentColor;
    // unused properties
    // @property (nonatomic,retain) UIImage *backgroundImage;
    // @property (nonatomic,retain) UIImage *closeButtonImage;
    // @property (nonatomic,retain) UIImage *nextButtonImage;
    @property (nonatomic,retain) GradientView *gradientView;// <-- added
    @property (nonatomic,retain) UIImageView *matrixView; // <-- added
    @property (readwrite) CGFloat currentBrightness;
    @property (readwrite) CGFloat currentHue;
    @property (readwrite) CGFloat currentSaturation;
    - (UIColor *) getColorShown;
    - (void) onViewDidLoad; // <-- added
    @end
    // ColorPickerView.m
    #import "ColorPickerView.h"
    #import "GradientView.h"
    #import "Constants.h"
    // --> declare private properties, methods and functions
    @interface ColorPickerView ()
    @property (nonatomic,retain) UIColor *currentColor;
    - (void) getStringForHSL : (CGFloat) hue : (CGFloat) sat : (CGFloat) bright;
    - (void) getStringForRGB :(CGColorRef) theColor;
    - (NSString *) hexStringFromColor : (CGColorRef) theColor;
    static int myRoundOff(CGFloat value);
    @end
    @implementation ColorPickerView
    // --> unused properties
    // @synthesize backgroundImage;
    // @synthesize closeButtonImage;
    // @synthesize nextButtonImage;
    @synthesize gradientView; // <-- added
    @synthesize matrixView; // <-- added
    @synthesize currentHue;
    @synthesize currentSaturation;
    @synthesize currentBrightness;
    @synthesize currentColor; // <-- added
    - (id)initWithCoder:(NSCoder*)coder {
    if (self = [super initWithCoder:coder]) {
    // --> changes to support gradientView, which is now a retaining property
    GradientView *gradView = [[GradientView alloc] initWithFrame:kBrightnessGradientPlacent];
    self.gradientView = gradView;
    [gradView release];
    // [gradientView setTheColor:
    // [UIColor yellowColor].CGColor]; // <-- fixed and moved to onViewDidLoad
    [self addSubview:gradientView];
    [self sendSubviewToBack:gradientView];
    // --> changes to support retaining property 'matrixView'
    // colorMatrixFrame = kHueSatFrame; // <-- removed colorMatrixFrame ivar
    UIImageView *hueSatImageView = [[UIImageView alloc] initWithFrame:kHueSatFrame];
    [hueSatImageView setImage:[UIImage imageNamed:kHueSatImage]];
    self.matrixView = hueSatImageView;
    [hueSatImageView release];
    [self addSubview:matrixView];
    [self sendSubviewToBack:matrixView];
    [self setMultipleTouchEnabled:YES]; // <-- moved to keep similar blocks together
    // currentBrightness = kInitialBrightness; // <-- removed
    // currentColor = [[UIColor alloc]init]; // <-- fixed and moved to onViewDidLoad
    return self;
    // --> several of the ivars in this class should be moved to the controller -
    // for now this method should be called at the end of the controller's viewDidLoad method
    - (void)onViewDidLoad {
    self.currentColor = [UIColor colorWithHue:currentHue
    saturation:currentSaturation
    brightness:currentBrightness
    alpha:1.0];
    [showColor setBackgroundColor:currentColor];
    [self getStringForRGB:currentColor.CGColor];
    [self getStringForHSL:currentHue :currentSaturation :currentBrightness];
    [colorInHex setText:[self hexStringFromColor:currentColor.CGColor]];
    NSLog(@"%s: hue=%1.2f sat=%1.2f bright=%1.2f",
    _func_, currentHue, currentSaturation, currentBrightness);
    - (NSString *) hexStringFromColor : (CGColorRef) theColor {
    const CGFloat *c = CGColorGetComponents(theColor);
    CGFloat r, g, b;
    r = c[0];
    g = c[1];
    b = c[2];
    // Fix range if needed
    if (r < 0.0f) r = 0.0f;
    if (g < 0.0f) g = 0.0f;
    if (b < 0.0f) b = 0.0f;
    if (r > 1.0f) r = 1.0f;
    if (g > 1.0f) g = 1.0f;
    if (b > 1.0f) b = 1.0f;
    // Convert to hex string between 0x00 and 0xFF
    return [NSString stringWithFormat:@"#%02X%02X%02X",
    // --> using myRoundOff instead of int typecast
    myRoundOff(r * 255), myRoundOff(g * 255), myRoundOff(b * 255)];
    // --> use this if needed to fudge extrema
    static int myRoundOff(CGFloat value) {
    return lround(value);
    - (void) getStringForHSL : (CGFloat) hue : (CGFloat) sat : (CGFloat) bright { // <-- CGFloat params
    // NSLog(@"%s: hue=%1.4lf sat=%1.4lf bright=%1.4lf", _func_, hue, sat, bright);
    // --> using myRoundOff instead of int typecast
    [Hcoords setText:[NSString stringWithFormat:@"%d",myRoundOff(hue*255)]];
    [Scoords setText:[NSString stringWithFormat:@"%d",myRoundOff(sat*255)]];
    [Lcoords setText:[NSString stringWithFormat:@"%d",myRoundOff(bright*255)]];
    - (void) getStringForRGB :(CGColorRef) theColor {
    const CGFloat *c = CGColorGetComponents(theColor);
    CGFloat r, g, b;
    r = c[0];
    g = c[1];
    b = c[2];
    // --> using myRoundOff instead of int typecast
    [Rcoords setText:[NSString stringWithFormat:@"%d",myRoundOff(r*255)]];
    [Gcoords setText:[NSString stringWithFormat:@"%d",myRoundOff(g*255)]];
    [Bcoords setText:[NSString stringWithFormat:@"%d",myRoundOff(b*255)]];
    - (void) updateHueSatWithMovement : (CGPoint) position {
    // --> correcting currentHue and currentSaturation calculations
    // currentHue = (position.x-kXAxisOffset)/kMatrixWidth;
    // currentSaturation = 1.0 - (position.y-kYAxisOffset)/kMatrixHeight;
    CGPoint ptInMatrix = [self convertPoint:position toView:matrixView];
    currentHue = ptInMatrix.x/(matrixView.frame.size.width-1);
    currentSaturation = 1.0 - ptInMatrix.y/(matrixView.frame.size.height-1);
    // printf("hue Of the touch is : %f
    ",currentHue);
    // printf("sat Of the touch is : %f
    ",currentSaturation);
    UIColor *forGradient = [UIColor colorWithHue:currentHue
    saturation:currentSaturation
    brightness: kInitialBrightness
    alpha:1.0];
    [gradientView setTheColor:forGradient.CGColor];
    [gradientView setupGradient];
    [gradientView setNeedsDisplay];
    self.currentColor = [UIColor colorWithHue:currentHue // --> using setter to retain color
    saturation:currentSaturation
    brightness:currentBrightness
    alpha:1.0];
    [showColor setBackgroundColor:currentColor];
    [colorInHex setText:[self hexStringFromColor:currentColor.CGColor]];
    [self getStringForRGB:currentColor.CGColor];
    [self getStringForHSL:currentHue :currentSaturation :currentBrightness];
    - (void) updateBrightnessWithMovement : (CGPoint) position {
    // --> correcting currentBrightness calculation
    // currentBrightness = 1.0-(position.x/gradientView.frame.size.width) + kBrightnessEpsilon;
    CGPoint ptInGradient = [self convertPoint:position toView:gradientView];
    currentBrightness = 1.0 - ptInGradient.x/(gradientView.frame.size.width-1);
    // printf("Brightness Of the touch is : %f
    ",currentBrightness);
    // --> setting and using currentColor ivar instead of local var
    self.currentColor = [UIColor colorWithHue:currentHue
    saturation:currentSaturation
    brightness:currentBrightness
    alpha:1.0];
    [showColor setBackgroundColor:currentColor];
    [colorInHex setText:[self hexStringFromColor:currentColor.CGColor]];
    [self getStringForRGB:currentColor.CGColor];
    [self getStringForHSL:currentHue :currentSaturation :currentBrightness];
    //Touch parts :
    // Scales down the view and moves it to the new position.
    - (void)animateView:(UIImageView *)theView toPosition:(CGPoint) thePosition
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:kAnimationDuration];
    // Set the center to the final postion
    theView.center = thePosition;
    // Set the transform back to the identity, thus undoing the previous scaling effect.
    theView.transform = CGAffineTransformIdentity;
    [UIView commitAnimations];
    -(void) dispatchTouchEvent:(CGPoint)position
    if (CGRectContainsPoint(matrixView.frame,position)) // <-- colorMatrixFrame ivar was removed
    // NSLog(@"Color!");
    // printf("X Of the touch in grad view is : %f
    ",position.x);
    // printf("Y Of the touch in grad view is : %f
    ",position.y);
    [self animateView:crossHairs toPosition: position];
    [self updateHueSatWithMovement:position];
    else if (CGRectContainsPoint(gradientView.frame, position))
    // NSLog(@"Bright!");
    CGPoint newPos = CGPointMake(position.x,kBrightBarYCenter);
    [self animateView:brightnessBar toPosition: newPos];
    [self updateBrightnessWithMovement:position];
    else
    // printf("X Of the touch in grad view is : %f
    ",position.x);
    // printf("Y Of the touch in grad view is : %f
    ",position.y);
    // Handles the start of a touch
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UITouch *touch in touches) {
    [self dispatchTouchEvent:[touch locationInView:self]];
    // printf("X IS %f
    ",[touch locationInView:self].x);
    // printf("Y IS %f
    ",[touch locationInView:self].y);
    // Handles the continuation of a touch.
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    for (UITouch *touch in touches){
    [self dispatchTouchEvent:[touch locationInView:self]];
    - (void)drawRect:(CGRect)rect {
    // --> corrected calculation of crosshairs.center
    CGFloat x = currentHue * matrixView.frame.size.width;
    CGFloat y = (1 - currentSaturation) * matrixView.frame.size.height;
    CGPoint ptInMatrix = CGPointMake(x, y);
    crossHairs.center = [matrixView convertPoint:ptInMatrix toView:self];
    // --> corrected calculation of brightnessBar.center
    x = (1 - currentBrightness) * gradientView.frame.size.width;
    y = gradientView.frame.size.height/2 - 3;
    CGPoint ptInGradient = CGPointMake(x, y);
    brightnessBar.center = [gradientView convertPoint:ptInGradient toView:self];
    // NSLog(@"%s: gradientView.frame=%@", _func_, NSStringFromCGRect(gradientView.frame));
    // NSLog(@" brightnessBar.center=%@", NSStringFromCGPoint(brightnessBar.center));
    UIColor *forGradient = [UIColor colorWithHue:currentHue // added
    saturation:currentSaturation
    brightness: kInitialBrightness
    alpha:1.0];
    [gradientView setTheColor:forGradient.CGColor]; // added
    [gradientView setupGradient];
    [gradientView setNeedsDisplay];
    [colorInHex setFont:[UIFont fontWithName:@"helvetica" size:16]];
    [self sendSubviewToBack:showColor];
    - (UIColor *) getColorShown {
    // NSLog(@"Are we here ? ");
    return [UIColor colorWithHue:currentHue saturation:currentSaturation
    brightness:currentBrightness alpha:1.0];
    - (void)dealloc {
    [currentColor release]; // <-- added
    [gradientView release]; // <-- added
    [matrixView release]; // <-- added
    [super dealloc];
    @end
    Disclaimer: While the above is working, tested code, the files are not meant to be examples of good practice. The objective was to hose out most of the functional bugs while changing the old files as little as possible. This is usually the best first step in cleaning up a project, since it allows the original programmers to see the changes in the context of the existing structure. Those changes can be much more difficult to see after a complete overhaul. Improving the structure will also change the nib files, and describing those changes in the forum can be tedious.
    Thus I perpetuated the structural weaknesses instead of moving most of the ivars, along with the code that administers them, into the ColorPickerViewController class. A number of useless but harmless artifacts were also left in the files.
    Most of my tests were only for functionality on the simulator. Though I tried to take care of memory management in the code I added or changed, there's lots of memory management clean up to do. I did some brief tests on a first gen iPod Touch with iOS 3.12, and at first glance I was surprised how well things seemed to be working. I was even able to position the crosshairs in a couple corners after a few tries (e.g. at full brightness, the upper-right corner should be HSL: 255, 255, 255; RGB: 255, 0, 0). All four of these extrema are reachable on the simulator, and if you have steady hands and/or small fingers, they're probably all reachable on an iPhone as well.
    Enjoy!
    - Ray

  • No RFC authorization for function module

    Hi Experts,
    I am working on PI 7.3, doing a idoc to jdbc scenario by using the AEX(Advance Adapter Engine Extended).
    I created Integrated Configuration, in tab "Inbound Processing" pointed IDoc_AAE sender channel etc...
    While doing the configuration testing i am getting the below error "No RFC authorization for function module IDOCTYPE_READ_COMPLETE."
    Messages fails in tRFC.
    What can i do, to solve this problem?
    Thanks & Regards
    Stanislav

    I ordered the right to RFC-connect.
    The problem was this: in RFC-connect, in Destination(in NWA), you must specify a username, who have permission to read idoc-metadata (from ERP).
    More about settings AAE, you may read here http://scn.sap.com/community/pi-and-soa-middleware/blog/2010/10/21/pixi-pi-73-new-java-based-idoc-adapters-configuration-sender-receiver--teaser
    Sorry for my bad English.
    Thanks all.

  • Problem with cesession.jar: Incompatible object argument for function call

    Hi,
    I'm looking for an actual file cesession.jar because my current version from BOXI SP2 (01.03.2007 09:22, 62 KB) causes an error.
    Who can help me?
    Best Regards
    Arnold
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: (class: com/crystaldecisions/sdk/framework/internal/d, method: a signature: ()V) Incompatible object argument for function call
         org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    javax.servlet.ServletException: (class: com/crystaldecisions/sdk/framework/internal/d, method: a signature: ()V) Incompatible object argument for function call
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
         org.apache.jsp.TutorialDesktop.start_jsp._jspService(start_jsp.java:151)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause
    java.lang.VerifyError: (class: com/crystaldecisions/sdk/framework/internal/d, method: a signature: ()V) Incompatible object argument for function call
         com.crystaldecisions.sdk.framework.internal.CEFactory.makeSessionMgr(Unknown Source)
         com.crystaldecisions.sdk.framework.CrystalEnterprise.getSessionMgr(Unknown Source)
         org.apache.jsp.TutorialDesktop.start_jsp.createAuthenticationList(start_jsp.java:26)
         org.apache.jsp.TutorialDesktop.start_jsp._jspService(start_jsp.java:132)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.

    Hello Arnold,
    Can you provide us the exact information about the implementation version and Ant-version of the cesession.jar file that you are using.
    This could be observed by opening the jar file using winrar or winzip, then go to the MANIFEST.MF file present inside META-INF folder.
    Once you will open the MANIFEST.MF file, please let us know the first seven lines present inside the same fle.
    Thanks,
    Chinmay

  • Who's responsible for in App Ads?

    What hapened?
    Had today a bad experience with an AppStore App (faceGoo lite). My kids used it in the last days and if you tip backwards in the right top corner you can accidently tip on the add a $$$ number, which dials instantly without any further question. Never heard about the possibility of this "trojan" use on iOS.
    Is this function really
    Had read about errors/ problems with inApp buys so this is all disabled (no pw saved on the iOS devices). But i'm really shoked that kind of this function is possible on iOS. Apple should ad a policy like "can app xyz access to the dial function".
    This kind of numbers are blocked now o all our devices.
    We discussed in the company i work for how to deal with Google Store as we ramp out a big amount of Galaxies. For the existing iOS devices we need to rethink also if Apple AppStore can be used as a trusted store. Up to now it's defined as a trusted store where Google play will be menaged with a blacklist.
    I like to sue the company resonsible for this, because it's a 4+ App and my kids can't read/ can't read ENG. I only talk about a couple of $ no big amount. But in this occation it's a question how this guys got the money. So i'll make a "pysical" extraction with cellebrite UFED touch tomorrow to save evidence and handle it over.
    Can anyone tellme how to find who's responsible for the in app adds of given app? As I've access to the plist stuff (via cellebrite) on the phone i can check all flags and settings.

    I made a note to apple in the app store. How to find the address of a publisher in app store? The website of the developer is registered through godaddy and than hidden again with an other publisher in the godaddy Whois information. At trace shows that the website I hosted by Amazon.
    I found one person (co founder) but having no address to contact him. Is there a company register in the US to find the address of the company?
    But to come back to the problem. Apple should redefine the policy using in app content/ ads by the developer. The content should be usefull and understandable by the audience the app is made for. And a $$$ dialer link is not 4+ level. And this dialer was not in the initial release.

  • Can't find FILTER CONDITION for filters or Function_Name for Functions

    In the Data Warehouse 11gr1 views all_iv_xform...
    I can't seem to find the Filter Conditions for filters and function name for functions that are called.
    I have looked at the other views in the documentation for the API's but can't seem to find this information.
    Any body have any ideas where this information is?
    thanks
    greG

    select map_component_id, position, source_parameter_name
    from ALL_IV_XFORM_MAP_PARAMETERS
    where map_component_id in (
    SELECT map_component_id
    FROM ALL_IV_XFORM_MAP_COMPONENTS
    WHERE MAP_ID IN (
    select MAP_ID
    from ALL_IV_XFORM_MAPS
    where MAP_NAME = :p_map_name
    AND OPERATOR_TYPE = 'Filter'
    Using map_component_id and position from above query you can see your filter condition defined in property_value:
    select map_component_name, property_name, property_value
    from ALL_IV_XFORM_MAP_PROPERTIES
    where map_component_id = :p_comp_id;

  • How to log input parameters for Function Modules?

    Hi,
    I need to create a Logging system to trace input parameters for function modules.
    The log functionality could be done by developing a class method or a function module (For example 'write_log'), and calling it within each function module that I want to log. The 'write_log' code should be independent from the interface of the Function Module that I want to log.
    For example, I'd like to write a function/class method that can log both these functions modules:
    Function DummyA
       Input parameters: A1 type char10, A2 type char10.
    Function DummyB
       Input parameters: B1 type char20, B2 type char20, B3 type char20, B4 type Z_MYSTRUCTURE
    Now the questions...
    - Is there a "standard SAP" function that provide this functionality?
    - If not, is there a system variable in which I can access runtime all parameters name, type and value for a particular function module?
    - If not, how can I loop at Input parameters in a way that is independent from the function module interface?
    Thank you in advance for helping!

    check this sample code. here i am capturing only parameters (import) values. you can extend this to capture tables, changin, etc.
    FUNCTION y_test_fm.
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(PARAM1) TYPE  CHAR10
    *"     REFERENCE(PARAM2) TYPE  CHAR10
    *"     REFERENCE(PARAM3) TYPE  CHAR10
      DATA: ep TYPE STANDARD TABLE OF rsexp ,
            ip TYPE STANDARD TABLE OF rsimp ,
            tp TYPE STANDARD TABLE OF rstbl ,
            el TYPE STANDARD TABLE OF rsexc ,
            vals TYPE tihttpnvp ,
            wa_vals TYPE ihttpnvp ,
            wa_ip TYPE rsimp .
      FIELD-SYMBOLS: <temp> TYPE ANY .
      CALL FUNCTION 'FUNCTION_IMPORT_INTERFACE'
        EXPORTING
          funcname                 = 'Y_TEST_FM'
    *   INACTIVE_VERSION         = ' '
    *   WITH_ENHANCEMENTS        = 'X'
    *   IGNORE_SWITCHES          = ' '
    * IMPORTING
    *   GLOBAL_FLAG              =
    *   REMOTE_CALL              =
    *   UPDATE_TASK              =
    *   EXCEPTION_CLASSES        =
        TABLES
          exception_list           = el
          export_parameter         = ep
          import_parameter         = ip
    *   CHANGING_PARAMETER       =
          tables_parameter         = tp
    *   P_DOCU                   =
    *   ENHA_EXP_PARAMETER       =
    *   ENHA_IMP_PARAMETER       =
    *   ENHA_CHA_PARAMETER       =
    *   ENHA_TBL_PARAMETER       =
    *   ENHA_DOCU                =
       EXCEPTIONS
         error_message            = 1
         function_not_found       = 2
         invalid_name             = 3
         OTHERS                   = 4
      IF sy-subrc = 0.
        LOOP AT ip INTO wa_ip .
          MOVE: wa_ip-parameter TO wa_vals-name .
          ASSIGN (wa_vals-name) TO <temp> .
          IF <temp> IS ASSIGNED .
            wa_vals-value = <temp> .
          ENDIF .
          APPEND wa_vals TO vals .
        ENDLOOP .
      ENDIF.
    ENDFUNCTION.

  • Java.lang.VerifyError - Incompatible object argument for function call

    Hi all,
    I'm developing a JSP application (powered by Tomcat 4.0.1 in JDK 1.3, in Eclipse 3.3). Among other stuff I have 3 classes interacting with an Oracle database, covering 3 use cases - renaming, adding and deleting an database object. The renaming class simply updates the database with a String variable it receives from the request object, whereas the other two classes perform some calculations with the request data and update the database accordingly.
    When the adding or deleting classes are executed, by performing the appropriate actions through the web application, Tomcat throws the following:
    java.lang.VerifyError: (class: action/GliederungNewAction, method: insertNewNode signature: (Loracle/jdbc/driver/OracleConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V) Incompatible object argument for function call
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:120)
         at action.ActionMapping.perform(ActionMapping.java:53)
         at ControllerServlet.doResponse(ControllerServlet.java:92)
         at ControllerServlet.doPost(ControllerServlet.java:50)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    ...The renaming works fine though. I have checked mailing lists and forums as well as contacted the company's java support but everything I have tried out so far, from exchanging the xerces.jar files found in JDOM and Tomcat to rebuidling the project didn't help.
    I just can't explain to myself why this error occurs and I don't see how some additional Java code in the other 2 classes could cause it?
    I realize that the Tomcat and JDK versions I'm using are totally out of date, but that's company's current standard and I can't really change that.
    Here's the source code. I moved parts of the business logic from Java to Oracle recently but I left the SQL statements that the Oracle stored procedures are executing if it helps someone.
    package action;
    import java.sql.CallableStatement;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.StringTokenizer;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import oracle.jdbc.driver.OracleConnection;
    * This class enables the creation and insertion of a new catalogue node. A new node
    * is always inserted as the last child of the selected parent node.
    public class GliederungNewAction implements Action {
         public String perform(ActionMapping mapping, HttpServletRequest request,
                   HttpServletResponse response) {
              // fetch the necessary parameters from the JSP site
              // the parent attribute is the selected attribute!
              String parent_attribute = request.getParameter("attr");
              String catalogue = request.getParameter("catalogue");
              int parent_sequenceNr = Integer.parseInt(request.getParameter("sort_sequence"));
              // connect to database    
              HttpSession session = request.getSession();   
              db.SessionConnection sessConn = (db.SessionConnection) session.getAttribute("connection");
              if (sessConn != null) {
                   try {
                        sessConn.setAutoCommit(false);
                        OracleConnection connection = (OracleConnection)sessConn.getConnection();
                        int lastPosition = getLastNodePosition( getLastChildAttribute(connection, catalogue, parent_attribute) );
                        String newNodeAttribute = createNewNodeAttribute(parent_attribute, lastPosition);
                        // calculate the sequence number
                        int precedingSequenceNumber = getPrecedingSequenceNumber(connection, catalogue, parent_attribute);
                        if ( precedingSequenceNumber == -1 ) {
                             precedingSequenceNumber = parent_sequenceNr;
                        int sortSequence = precedingSequenceNumber + 1;
                        setSequenceNumbers(connection, catalogue, sortSequence);
                        // insert the new node into DB
                        insertNewNode(connection, catalogue, newNodeAttribute, parent_attribute, "Neuer Punkt", sortSequence);
                        connection.commit();
                   } catch(SQLException ex) {
                        ex.printStackTrace();
              return mapping.getForward();
          * Creates, fills and executes a prepared statement to insert a new entry into the specified table, representing
          * a new node in the catalogue.
         private void insertNewNode(OracleConnection connection, String catalogue, String attribute, String parent_attribute, String description, int sortSequence) {
              try {
                   String callAddNode = "{ call fasi_lob.pack_gliederung.addNode(:1, :2, :3, :4, :5) }";
                   CallableStatement cst;
                   cst = connection.prepareCall(callAddNode);
                   cst.setString(1, catalogue);
                   cst.setString(2, attribute);
                   cst.setString(3, parent_attribute);
                   cst.setString(4, description);
                   cst.setInt(5, sortSequence);
                   cst.execute();
                   cst.close();
              } catch (SQLException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
    //          String insertNewNode = "INSERT INTO vstd_media_cat_attributes " +
    //                    "(catalogue, attribute, parent_attr, description, sort_sequence) VALUES(:1, :2, :3, :4, :5)";
    //          PreparedStatement insertStmt;
    //          try {
    //               insertStmt = connection.prepareStatement(insertNewNode);
    //               insertStmt.setString(1, catalogue);
    //               insertStmt.setString(2, attribute);
    //               insertStmt.setString(3, parent_attribute);
    //               insertStmt.setString(4, description);
    //               insertStmt.setInt(5, sortSequence);
    //               insertStmt.execute();
    //               insertStmt.close();
    //          } catch (SQLException e) {
    //               e.printStackTrace();
          * This method returns the attribute value of the last child of the parent under which
          * we want to insert a new node. The result set is sorted in descending order and only the
          * first result (that is, the last child under this parent) is fetched.
          * If the parent node has no children, "parent_attr.0" is returned. 
          * @param connection
          * @param catalogue
          * @param parent_attribute
          * @return attribute of the last child under this parent, or "parent_attr.0" if parent has no children
         private String getLastChildAttribute(OracleConnection connection, String catalogue, String parent_attribute) {
              String queryLastChild = "SELECT attribute FROM vstd_media_cat_attributes " +
                                            "WHERE catalogue=:1 AND parent_attr=:2 ORDER BY sort_sequence DESC";
              String lastChildAttribute;
              PreparedStatement ps;
              try {
                   ps = connection.prepareStatement(queryLastChild);
                   ps.setString(1, catalogue);
                   ps.setString(2, parent_attribute);
                   ResultSet rs = ps.executeQuery();
                   /* If a result is returned, the selected parent already has children.
                    * If not set the lastChildAttribute to parent_attr.0
                   if (rs.next()) {
                        lastChildAttribute = rs.getString("attribute");
                   } else {
                        lastChildAttribute = parent_attribute.concat(".0");
                   rs.close();
                   return lastChildAttribute;
              } catch (SQLException e) {
                   e.printStackTrace();
                   return null;
          * This helper method determines the position of the last node in the attribute.
          * i.e for 3.5.2 it returns 2, for 2.1 it returns 1 etc.
          * @param attribute
          * @return position of last node in this attribute
         private int getLastNodePosition(String attribute) {
              StringTokenizer tokenizer = new StringTokenizer(attribute, ".");
              String lastNodePosition = "0";
              while( tokenizer.hasMoreTokens() ) {
                   lastNodePosition = tokenizer.nextToken();
              return Integer.parseInt(lastNodePosition);
          * This method calculates the attribute of a node being inserted
          * by incrementing the last child position by 1 and attaching the
          * incremented position to the parent.
          * @param parent_attr
          * @param lastPosition
          * @return attribute of the new node
         private String createNewNodeAttribute(String parent_attr, int lastPosition) {
              String newPosition = new Integer(lastPosition + 1).toString();
              return parent_attr.concat("." + newPosition);
          * This method checks if the required sequence number for a new node is already in use and
          * handles the sequence numbers accordingly.
          * If the sequence number for a new node is NOT IN USE, the method doesn't do anything.
          * If the sequence number for a new node is IN USE, the method searches for the next free
          * sequence number by incrementing the number by one and repeating the query until no result
          * is found. Then all the sequence numbers between the required number (including, >= relation)
          * and the nearest found free number (not including, < relation) are incremented by 1, as to
          * make space for the new node.
          * @param connection
          * @param catalogue
          * @param newNodeSequenceNumber required sequence number for the new node
         private void setSequenceNumbers(OracleConnection connection, String catalogue, int newNodeSequenceNumber) {
              // 1. check if the new sequence number exists - if no do nothing
              // if yes - increment by one and see if exists
              //           repeat until free sequence number exists
              // when found increment all sequence numbers freeSeqNr > seqNr >= newSeqNr
              String query = "SELECT sort_sequence FROM vstd_media_cat_attributes " +
                        "WHERE catalogue=:1 AND sort_sequence=:2";
              PreparedStatement ps;
              try {
                   ps = connection.prepareStatement(query);
                   ps.setString(1, catalogue);
                   ps.setInt(2, newNodeSequenceNumber);               
                   ResultSet rs = ps.executeQuery();
                   // if no result, the required sequence number is free - nothing to do
                   if( rs.next() ) {
                        int freeSequenceNumber = newNodeSequenceNumber;
                        do {
                             ps.setString(1, catalogue);
                             ps.setInt(2, freeSequenceNumber++);
                             rs = ps.executeQuery();
                        } while( rs.next() );
                        // increment sequence numbers - call stored procedure
                        String callUpdateSeqeunceNrs = "{ call fasi_lob.pack_gliederung.updateSeqNumbers(:1, :2, :3) }";
                        CallableStatement cst = connection.prepareCall(callUpdateSeqeunceNrs);
                        cst.setString(1, catalogue);
                        cst.setInt(2, newNodeSequenceNumber);
                        cst.setInt(3, freeSequenceNumber);
                        cst.execute();
                        cst.close();
    //                    String query2 = "UPDATE vstd_media_cat_attributes " +
    //                                      "SET sort_sequence = (sort_sequence + 1 ) " +
    //                                      "WHERE catalogue=:1 sort_sequnce >=:2 AND sort_sequence <:3";
    //                    PreparedStatement ps2;
    //                    ps2 = connection.prepareStatement(query2);
    //                    ps2.setString(1, catalogue);
    //                    ps2.setInt(2, newNodeSequenceNumber);
    //                    ps2.setInt(3, freeSequenceNumber);
    //                    ps.executeUpdate();
    //                    ps.close();
                   } // end of if block
                   rs.close();
              } catch (SQLException e) {
                   e.printStackTrace();
          * This method finds the last sequence number preceding the sequence number of a node
          * that is going to be inserted. The preceding sequence number is required to calculate
          * the sequence number of the new node.
          * We perform a hierarchical query starting from the parent node: if a result is returned,
          * we assign the parent's farthest descendant's node sequence number; if no result
          * is returned, we assign the parent's sequence number.
          * @param connection
          * @param catalogue
          * @param parent_attr parent attribute of the new node
          * @return
         private int getPrecedingSequenceNumber(OracleConnection connection, String catalogue, String parent_attr) {
              int sequenceNumber = 0;
              String query = "SELECT sort_sequence FROM vstd_media_cat_attributes " +
                                "WHERE catalogue=:1 " +
                                "CONNECT BY PRIOR attribute = parent_attr START WITH parent_attr=:2 " +
                                "ORDER BY sort_sequence DESC";
              try {
                   PreparedStatement ps = connection.prepareStatement(query);
                   ps.setString(1, catalogue);
                   ps.setString(2, parent_attr);
                   ResultSet rs = ps.executeQuery();
                   if ( rs.next() ) {
                        sequenceNumber = rs.getInt("sort_sequence");
                   } else {
                        // TODO: ggf fetch from request!
                        sequenceNumber = -1;
                   rs.close();
                   ps.close();
              } catch (SQLException e) {
                   e.printStackTrace();
              return sequenceNumber;
    }

    After further googling I figured out what was causing the problem: in eclipse I was referring to external libraries located in eclipse/plugins directory, whereas Tomcat was referring to the same libraries (possibly older versions) in it's common/lib directory.

  • HP desktop computer can not play Blu-ray DVDs. Who is responsible for this?

    In 2010, I blought an HP Pavilion Elite HPE 250-f desktop computer (running Windows 7). This computer was advertised as having a Blu-ray DVD player, as well as players for regular DVDs and CDs. All these years, I've been successfully playing regular DVDs and CDs. Until now, I have not attempted to play a Blu-ray DVD.
    I recently rented the "Divergent" Blu-ray DVD (as well as the "Divergent" regular DVD) from my local library. When I tried to play the Blu-ray DVD, the HP MediaSmart software and the Windows Media Player detected the Blu-ray but were not able to play the Blu-ray.
    I then downloaded the Media Player Codec Pack, http://download.cnet.com/Media-Player-Codec-Pack/3000-13632_4-10749065.html    This Codec Pack was supposed to help Windows Media Player play the Blu-ray. That did not work. When I got rid of the Codec Pack using System Restore, HP MediaSmart and Windows Media Player became unable to detect the Blu-ray in the Blu-ray drive. After another System Restore, HP MediaSmart and Windows Media Player were once again able to detect the Blu-ray (but were still unable to play the Blu-ray).
    I then downloaded Cyberlink PowerDVD 14, which played the Blu-ray for only about 7 seconds before crashing. I then got rid of Cyberlink PowerDVD 14 with a System Restore.
    I downloaded TotalMedia Theatre version 6.0.1.123. However, this software did not detect the Blu-ray. I then got rid of TotalMedia Theatre with a System Restore. After that, I was not able to play ANYTHING, including CDs and regular DVDs. CDs and regular DVDs were not being detected by playing software. After another System Restore, I was once again able to play CDs and regular DVDs. However, I do not want to risk trying to play the Blu-ray again.
    So, what's going on here? HP advertised this computer as having a Blu-ray DVD player. Wasn't HP responsible for providing software that could play Blu-ray DVDs? And why is the Blu-ray DVD, sometimes detected, and sometimes not detected, by playing software? Is there some kind of hardware issue?
    Who is responsible for the fact that my computer can not play Blu-ray DVDs? HP, for bad playing software and/or bad hardware? Or is there something in the Windows 7 operating system that prevents the playing of Blu-ray DVDs? Is Microsoft responsible?
    Thanks for any information.

    Talon820 wrote:
    In 2010, I blought an HP Pavilion Elite HPE 250-f desktop computer (running Windows 7). This computer was advertised as having a Blu-ray DVD player, as well as players for regular DVDs and CDs. All these years, I've been successfully playing regular DVDs and CDs. Until now, I have not attempted to play a Blu-ray DVD.
    I recently rented the "Divergent" Blu-ray DVD (as well as the "Divergent" regular DVD) from my local library. When I tried to play the Blu-ray DVD, the HP MediaSmart software and the Windows Media Player detected the Blu-ray but were not able to play the Blu-ray.
    I then downloaded the Media Player Codec Pack, http://download.cnet.com/Media-Player-Codec-Pack/3000-13632_4-10749065.html    This Codec Pack was supposed to help Windows Media Player play the Blu-ray. That did not work. When I got rid of the Codec Pack using System Restore, HP MediaSmart and Windows Media Player became unable to detect the Blu-ray in the Blu-ray drive. After another System Restore, HP MediaSmart and Windows Media Player were once again able to detect the Blu-ray (but were still unable to play the Blu-ray).
    I then downloaded Cyberlink PowerDVD 14, which played the Blu-ray for only about 7 seconds before crashing. I then got rid of Cyberlink PowerDVD 14 with a System Restore.
    I downloaded TotalMedia Theatre version 6.0.1.123. However, this software did not detect the Blu-ray. I then got rid of TotalMedia Theatre with a System Restore. After that, I was not able to play ANYTHING, including CDs and regular DVDs. CDs and regular DVDs were not being detected by playing software. After another System Restore, I was once again able to play CDs and regular DVDs. However, I do not want to risk trying to play the Blu-ray again.
    So, what's going on here? HP advertised this computer as having a Blu-ray DVD player. Wasn't HP responsible for providing software that could play Blu-ray DVDs? And why is the Blu-ray DVD, sometimes detected, and sometimes not detected, by playing software? Is there some kind of hardware issue?
    Who is responsible for the fact that my computer can not play Blu-ray DVDs? HP, for bad playing software and/or bad hardware? Or is there something in the Windows 7 operating system that prevents the playing of Blu-ray DVDs? Is Microsoft responsible?
    Thanks for any information.
    You're not going to get any help from HP or Microsoft on a 4 year old computer.   Maybe your optical drive is no longer able to play Bluray discs.  Windows 7 Media Center with Bluray playback was not included in all versions of Windows 7.  Each computer with Bluray has an individual license; yours may have expired after not using it for 4 years.  Best advice - don't flog a dead horse.  Just get regular DVDs.

  • List of users who have authorization for a particular transaction?

    Hi All,
    Can anyone guide me how to know the list of users who have authorization for a particular transaction?
    I need this to find out the list of authorizations that are obsolete ,when the particular trnsaction is obsolete in an Upgrade process.
    Thanks in advance.

    we can get the list of users for a particular transaction as below.
    get the tcode and place in AGR_TCODES and we get the list of roles .
    loop the roles and pass each role to AGR_USERS and we get list of users for that role.
    finally we got the list of users for that tcode.

  • How to get the list of users who has access for list of tcodes.

    How to get the list of users who has access for list of tcodes.

    Go to transaction SUIM, this has a number of reports for users/authorisations
    open the Where used>Autorization Values>In Users
    and double click to execute
    in authorisation object, enter S_TCODE
    then press the "Enter Values" button
    It will offer entry boxes to put the transaction code you are interesed in.
    Then execute and the list of users with access to this transaciton code will be returned.

  • How to find out who had deleted the function moldule? S O S

    how to find out who had deleted the function moldule Thank you very much.

    if this fm was assigned to device class (package) you'll find it in
    tables tadir, e070, e071
    try with name of function module or function group
    hope that helps
    Andreas

  • What are  the input parameters for Function Module

    Dear Experts,
    I want to generate a Sales Tax returns report,those fields are not available in my existing Datasources.
    For that i want to write a Generic Datasource with Function Module.
    audat
    bukrs
    vkorg
    vtweg
    spart
    aurat
    auart
    netwr
    mwsbp
    kschl zedp(consition type)
    kschl zvat(condition type)
    ksch   zcst(condition type)
    matkl     material group
    Here what are the Input parameters for Function Module.
    Thanks in Advance.
    Srinivasan.

    Srinivasan-
    For creating a Generic extractor based on a FM, you first of all need to know what is going to be your structure.. i.e. what all fields you need to pull from what all tables. A functional consultant may help you identify the exact DB tables.
    Once you know them, hand over the requirement and the pdf mentioned by Krishna to the ABAP guy, he would be able to take this up further.
    Also decide 1st whether you would be using a full load or delta. There is a slight difference in the way they are built.
    Let me know how it goes.
    -Bhushan.

  • What is the best method to parse a java file for function names

    st="class";
    while (StreamTokenizer.TT_EOF != tokenizer.nextToken ())
       if (StreamTokenizer.TT_WORD == tokenizer.ttype)
        if (tokenizer.sval.toLowerCase().equals(st.toLowerCase())){
        System.out.print (tokenizer.nextToken() + " "); //prints the class name on the console
        fileOut.print (tokenizer.sval + " "); //prints the class name to a file
    }The above program searches a .java file for classes. I want to modify it so that it searches for function names as well. After several hours of figuring out various ways to do it with StreamTokenizer, I still havnt found a way. There seems to be no way to go back, i.e. no previousToken method, in StreamTokenizer.
    Is it possible to do search for using StreamTokenizer, and are there easier ways of doing it?

    Simple string tokenizing isn't an effective way to do this. You probably want something like ANTLR.

Maybe you are looking for

  • Time Capsule remote disk access

    So i went into airport utility and enabled access disk via internet, enabled file sharing etc. i put some movie clips and a couple of songs and files i wanted to access on there when im not at home. music playback is fine....and editing PSD files off

  • How do I know if the program has been downloaded to another computer or not?

    How do I know if the program has been downloaded to another computer or not? Also how do I know if it is the educational version or not?

  • Please help! Grey screen on Macbook Pro 15"

    Good morning to all! Last night, suddenly my Macbook pro 15" shut down. When I tried to restart, I got just a grey screen. I already tried all commands to recover my mac back, when a boot at single mode and use fsck I got a lot of errors. (I tried mo

  • Updated Failed 6.1.1

    hey, I've got an iPhone 4s, I've been trying to update to the latest 6.1.1 update but i'm getting "An Error occurred downloading iOS 6.1.1" Near the end of it downloading the update. I've restarted the phone and closed all apps but still getting the

  • Changing FX5500 TD256 fan

    Hello, I've bought this video card six months ago and installed it immediately, but about a week ago it started to make a lot of noise. I realized that the fan is the one making the noise, and it's working much more slowly than expected, and this wor