Search Results

Search found 6637 results on 266 pages for 'usr'.

Page 239/266 | < Previous Page | 235 236 237 238 239 240 241 242 243 244 245 246  | Next Page >

  • C compiler cannot create executables when trying to build Binutils

    - by Koning Baard XIV
    I am trying to build Linux From Scratch, and now I am at chapter 5.4, which tells me how to build Binutils. I have binutils 2.20's source code, but when I try to build it: time { ./binutils-2.20/configure --target=$LFS_TGT --prefix=/tools --disable-nls --disable-werror ; } it gives me an error: checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-lfs-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether ln works... yes checking whether ln -s works... yes checking for a sed that does not truncate output... /bin/sed checking for gawk... gawk checking for gcc... GCC checking for C compiler default output file name... configure: error: in `/media/LFS': configure: error: C compiler cannot create executables See `config.log' for more details. You can see my config.log at pastebin.com: http://pastebin.com/hX7v5KLn I have just installed Ubuntu 10.04, and reinstalled GCC and installed G++. Also, the build is done by a non-root, non-admin user called 'lfs' (which is also described in Linux From Scratch), and on a different partition than where the system is installed. Can anyone help me? Thanks

    Read the article

  • Simple perl program failing to execute

    - by yves Baumes
    Here is a sample that fails: #!/usr/bin/perl -w # client.pl #---------------- use strict; use Socket; # initialize host and port my $host = shift || 'localhost'; my $port = shift || 55555; my $server = "10.126.142.22"; # create the socket, connect to the port socket(SOCKET,PF_INET,SOCK_STREAM,(getprotobyname('tcp'))[2]) or die "Can't create a socket $!\n"; connect( SOCKET, pack( 'Sn4x8', AF_INET, $port, $server )) or die "Can't connect to port $port! \n"; my $line; while ($line = <SOCKET>) { print "$line\n"; } close SOCKET or die "close: $!"; with the error: Argument "10.126.142.22" isn't numeric in pack at D:\send.pl line 16. Can't connect to port 55555! I am using this version of Perl: This is perl, v5.10.1 built for MSWin32-x86-multi-thread (with 2 registered patches, see perl -V for more detail) Copyright 1987-2009, Larry Wall Binary build 1006 [291086] provided by ActiveState http://www.ActiveState.com Built Aug 24 2009 13:48:26 Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. While I am running the netcat command on the server side. Telnet does work.

    Read the article

  • Take most significant 8 bytes of the MD5 hash of a string as a long (in Ruby)

    - by Nate Murray
    Hey Friends, I'm trying to implement a java "hash" function in ruby. Here's the java side: import java.nio.charset.Charset; import java.security.MessageDigest; /** * @return most significant 8 bytes of the MD5 hash of the string, as a long */ protected long hash(String value) { byte[] md5hash; md5hash = md5Digest.digest(value.getBytes(Charset.forName("UTF8"))); long hash = 0L; for (int i = 0; i < 8; i++) { hash = hash << 8 | md5hash[i] & 0x00000000000000FFL; } return hash; } So far, my best guess in ruby is: # WRONG - doesn't work properly. #!/usr/bin/env ruby -wKU require 'digest/md5' require 'pp' md5hash = Digest::MD5.hexdigest("0").unpack("U*") pp md5hash hash = 0 0.upto(7) do |i| hash = hash << 8 | md5hash[i] & 0x00000000000000FF end pp hash Problem is, this ruby code doesn't match the java output. For reference, the above java code given these strings returns the corresponding long: "00038c53790ecedfeb2f83102e9115a522475d73" => -2059313900129568948 "0" => -3473083983811222033 "001211e8befc8ac22dd265ecaa77f8c227d0007f" => 3234260774580957018 Thoughts: I'm having problems getting the UTF8 bytes from the ruby string In ruby I'm using hexdigest, I suspect I should be using just digest instead The java code is taking the md5 of the UTF8 bytes whereas my ruby code is taking the bytes of the md5 (as hex) Any suggestions on how to get the exact same output in ruby?

    Read the article

  • How can I share variables between a base class and subclass in Perl?

    - by Jonathan
    I have a base class like this: package MyClass; use vars qw/$ME list of vars/; use Exporter; @ISA = qw/Exporter/; @EXPORT_OK = qw/ many variables & functions/; %EXPORT_TAGS = (all => \@EXPORT_OK ); sub my_method { } sub other_methods etc { } --- more code--- I want to subclass MyClass, but only for one method. package MySubclass; use MyClass; use vars qw/@ISA/; @ISA = 'MyClass'; sub my_method { --- new method } And I want to call this MySubclass like I would the original MyClass, and still have access to all of the variables and functions from Exporter. However I am having problems getting the Exporter variables from the original class, MyClass, to export correctly. Do I need to run Exporter again inside the subclass? That seems redundant and unclear. Example file: #!/usr/bin/perl use MySubclass /$ME/; -- rest of code But I get compile errors when I try to import the $ME variable. Any suggestions?

    Read the article

  • Better viewing of postfix mail queue files than postcat?

    - by Geekman
    So I got a call early this morning about a client needing to see what email they have waiting to be delivered sitting in our secondary mail server. Their link for the main server had (still is) been down for two days and they needed to see their email. So I wrote up a quick perl script to use mailq in combination with postcat to dump each email for their address into separate files, tar'd it up and sent it off. Horrible code, I know, but it was urgent. My solution works OK in that it at least gives a raw view, but I thought tonight it would be nice if I had a solution where I could provide their email attachments and maybe remove some "garbage" header text as well. Most of the important emails seem to have a PDF or similar attached. I've been looking around but the only method of viewing queue files I can see is the postcat command, and I really don't want to write my own parser - so I was wondering if any of you have already done so, or know of a better command to use? Here's the code for my current solution: #!/usr/bin/perl $qCmd="mailq | grep -B 2 \"someemailaddress@isp\" | cut -d \" \" -f 1"; @data = split(/\n/, `$qCmd`); $i = 0; foreach $line (@data) { $i++; $remainder = $i % 2; if ($remainder == 0) { next; } if ($line =~ /\(/ || $line =~ /\n/ || $line eq "") { next; } print "Processing: " . $line . "\n"; `postcat -q $line > $line.email.txt`; $subject=`cat $line.email.txt | grep "Subject:"`; #print "SUB" . $subject; #`cat $line.email.txt > \"$subject.$line.email.txt\"`; } Any advice appreciated.

    Read the article

  • Programmatically talking to a Serial Port in OS X or Linux

    - by deadprogrammer
    I have a Prolite LED sign that I like to set up to show scrolling search queries from a apache logs and other fun statistics. The problem is, my G5 does not have a serial port, so I have to use a usb to serial dongle. It shows up as /dev/cu.usbserial and /dev/tty.usbserial . When i do this everything seems to be hunky-dory: stty -f /dev/cu.usbserial speed 9600 baud; lflags: -icanon -isig -iexten -echo iflags: -icrnl -ixon -ixany -imaxbel -brkint oflags: -opost -onlcr -oxtabs cflags: cs8 -parenb Everything also works when I use the serial port tool to talk to it. If I run this piece of code while the above mentioned serial port tool, everthing also works. But as soon as I disconnect the tool the connection gets lost. #!/usr/bin/python import serial ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10) ser.write("<ID01><PA> \r\n") read_chars = ser.read(20) print read_chars ser.close() So the question is, what magicks do I need to perform to start talking to the serial port without the serial port tool? Is that a permissions problem? Also, what's the difference between /dev/cu.usbserial and /dev/tty.usbserial?

    Read the article

  • application packaging

    - by user285825
    The application packaging (software deliverables) is a vague concept to me. I worked in web application before so all I know how to prepare the deliverables ie WAR and then put them into the servlet container and rest of this being taken care of. But when considering other java or c++-based application (.exe or .class) how to prepare the package? What should be considered for preparation of the package and deployment of the application? Like I understand there should be some entries made into the windows registry or some libraries to be put in /usr/bin directory and so on. And during the development phase the execution and testing is done in more informal manner like writing some shell script or so on. But the deployment scenario is a more formal thing. As I said I have only the idea of deploying web applications I am not much knowledgeable in the other areas. Are there any kind of conventions like there are conventions for documentations like javadoc or doxygen/man pages? Application packaging is not that sort of a thing that there are much discussion on books or online materials. This is very disappointing.

    Read the article

  • GenerateDSYMFile warning: unable to open object file

    - by regulus6633
    The background: I have a project that I last built on 10.5 on a PPC computer using xcode v3.1. It builds against the 10.4 SDK. I now have a MacBook with 10.6 on it and Xcode v3.2.1. I installed the 10.4 SDK with xcode. So now I want to build the project on an intel chip on 10.6. I first get a build error because I have the wrong version of gcc setup so I change the build settings to use gcc 4.0. The problem: Now when I build the project I get the following warning: GenerateDSYMFile "build/Release/What's Keeping Me?.app.dSYM" "build/Release/What's Keeping Me?.app/Contents/MacOS/What's Keeping Me?" cd "/Users/hmcshane/Development/ Cocoa Projects/What's Keeping Me?" /Developer/usr/bin/dsymutil "/Users/hmcshane/Development/ Cocoa Projects/What's Keeping Me?/build/Release/What's Keeping Me?.app/Contents/MacOS/What's Keeping Me?" -o "/Users/hmcshane/Development/ Cocoa Projects/What's Keeping Me?/build/Release/What's Keeping Me?.app.dSYM" warning: (i386) /Users/hmcshane/Downloads/Csu-71/crt.dynamic_no_pic.o unable to open object file warning: (ppc7400) /Users/hmcshane/Downloads/Csu-71/crt.dynamic_no_pic.o unable to open object file Any idea what this is? And why is the path for the problem files rooted in my downloads folder? The project certainly doesn't reside there.

    Read the article

  • Parsing tab delimited file with double quotes in Perl

    - by sfactor
    I have a data set that is tab delimited with the user-agent strings in double quotes. I need to parse each of these columns and based on the answer of my other post I used the Text::CSV module. 94410634 0 GET "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTB5.5)" 1 The code is a simple one. #!/usr/bin/perl use strict; use warnings; use Text::CSV; my $csv = Text::CSV->new(sep_char => "\t"); while (<>) { if ($csv->parse($_)) { my @columns = $csv->fields(); print "@columns\n"; } else { my $err = $csv->error_input; print "Failed to parse line: $err"; } } But i get the Failed to parse line: error when I try it on this dataset. what am I doing wrong? I need to extract the 4th column containing the user-agent strings for further processing.

    Read the article

  • Process RECEIVED email attatchment with PHP.

    - by Eli
    Hi All, I have a php script that will an catch email passed to it and process it. #!/usr/local/bin/php -q <?php while (!feof(STDIN)) {$s .= fgets(STDIN);} // Now do some work on the email source in $s. ?> This works fine. My question is how to save an attachment into the file system from the source. For example, if I isolate the section below, how do I need to process it before saving it into a gif file to create a valid gif? I assume I need to change the encoding, or otherwise process it, but does anyone know exactly? Thanks! --------------090607000609050308090504 Content-Type: image/gif; name="tfk.gif" Content-Transfer-Encoding: base64 Content-ID: <part1.06050801.05020504@etc....> Content-Disposition: attachment; filename="tfk.gif" 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 --------------090607000609050308090504--

    Read the article

  • [Cocoa] Can't find leak in my code.

    - by ryyst
    Hi, I've been spending the last few hours trying to find the memory leak in my code. Here it is: NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; expression = [expression stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; // expression is an NSString object. NSArray *arguments = [NSArray arrayWithObjects:expression, [@"~/Desktop/file.txt" stringByExpandingTildeInPath], @"-n", @"--line-number", nil]; NSPipe *outPipe = [[NSPipe alloc] init]; NSTask *task = [[NSTask alloc] init]; [task setLaunchPath:@"/usr/bin/grep"]; [task setArguments:arguments]; [task setStandardOutput:outPipe]; [outPipe release]; [task launch]; NSData *data = [[outPipe fileHandleForReading] readDataToEndOfFile]; [task waitUntilExit]; [task release]; NSString *string = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSUTF8StringEncoding]; string = [string stringByReplacingOccurrencesOfString:@"\r" withString:@""]; int linesNum = 0; NSMutableArray *possibleMatches = [[NSMutableArray alloc] init]; if ([string length] > 0) { NSArray *lines = [string componentsSeparatedByString:@"\n"]; linesNum = [lines count]; for (int i = 0; i < [lines count]; i++) { NSString *currentLine = [lines objectAtIndex:i]; NSArray *values = [currentLine componentsSeparatedByString:@"\t"]; if ([values count] == 20) [possibleMatches addObject:currentLine]; } } [string release]; [pool release]; return [possibleMatches autorelease]; I tried to follow the few basic rules of Cocoa memory management, but somehow there still seems to be a leak, I believe it's an array that's leaking. It's noticeable if possibleMatches is large. You can try the code by using any large file as "~/Desktop/file.txt" and as expression something that yields many results when grep-ing. What's the mistake I'm making? Thanks for any help! -- Ry

    Read the article

  • vtk glyphs 3D, indenpently color and rotation

    - by user3684219
    I try to display thanks to vtk (python wrapper) several glyphs in a scene with each their own colour and rotation. Unfortunately, just the rotation (using vtkTensorGlyph) is taken in consideration by vtk. Reversely, just color is taken in consideration when I use a vtkGlyph3D. Here is a ready to use piece of code with a vtkTensorGlyph. Each cube should have a random color but there all will be in the same color. I read and read again the doc of vtk but I found no solution. Thanks in advance for any idea #!/usr/bin/env python # -*- coding: utf-8 -*- import vtk import scipy.linalg as sc import random as ra import numpy as np import itertools points = vtk.vtk.vtkPoints() # where to locate each glyph in the scene tensors = vtk.vtkDoubleArray() # rotation for each glyph tensors.SetNumberOfComponents(9) colors = vtk.vtkUnsignedCharArray() # should be the color for each glyph colors.SetNumberOfComponents(3) # let's make 10 cubes in the scene for i in range(0, 50, 5): points.InsertNextPoint(i, i, i) # position of a glyph colors.InsertNextTuple3(ra.randint(0, 255), ra.randint(0, 255), ra.randint(0, 255) ) # pick random color rot = list(itertools.chain(*np.reshape(sc.orth(np.random.rand(3, 3)).transpose(), (1, 9)).tolist())) # random rotation matrix (row major) tensors.InsertNextTuple9(*rot) polydata = vtk.vtkPolyData() # create the polydatas polydata.SetPoints(points) polydata.GetPointData().SetTensors(tensors) polydata.GetPointData().SetScalars(colors) cubeSource = vtk.vtkCubeSource() cubeSource.Update() glyphTensor = vtk.vtkTensorGlyph() glyphTensor.SetColorModeToScalars() # is it really work ? try: glyphTensor.SetInput(polydata) except AttributeError: glyphTensor.SetInputData(polydata) glyphTensor.SetSourceConnection(cubeSource.GetOutputPort()) glyphTensor.ColorGlyphsOn() # should not color all cubes independently ? glyphTensor.ThreeGlyphsOff() glyphTensor.ExtractEigenvaluesOff() glyphTensor.Update() # next is usual vtk code mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(glyphTensor.GetOutputPort()) actor = vtk.vtkActor() actor.SetMapper(mapper) ren = vtk.vtkRenderer() ren.SetBackground(0.2, 0.5, 0.3) ren.AddActor(actor) renwin = vtk.vtkRenderWindow() renwin.AddRenderer(ren) iren = vtk.vtkRenderWindowInteractor() iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera()) iren.SetRenderWindow(renwin) renwin.Render() iren.Initialize() renwin.Render() iren.Start()

    Read the article

  • DRY Authenticated Tasks in Cocoa (with distributed objects)

    - by arbales
    I'm kind of surprise/infuriated that the only way for me to run an authenticated task, like perhaps sudo gem install shi*t, is to make a tool with pre-written code. I'm writing a MacRuby application, which doesn't seem to expose the KAuthorization* constants/methods. So.. I learned Cocoa and Objective-C. My application creates a object, serves it and calls the a tool that elevates itself and then performs a selector on a distributed object (in the tool's thread). I hoped that the distributed object's methods would evaluated inside the tool, so I could use delegation to create "privileged" tasks. If this won't work, don't try to save it, I just want a DRY/cocoa solution. AuthHelper.m //AuthorizationExecuteWithPrivileges of this. AuthResponder* my_responder = [AuthResponder sharedResponder]; // Gets the proxy object (and it's delegate) NSString *selector = [NSString stringWithUTF8String:argv[3]]; NSLog(@"Performing selector: %@", selector); setuid(0); if ([[my_responder delegate] respondsToSelector:NSSelectorFromString(selector)]){ [[my_responder delegate] performSelectorOnMainThread:NSSelectorFromString(selector) withObject:nil waitUntilDone:YES]; } RandomController.m - (void)awakeFromNib { helperToolPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/AuthHelper"]; delegatePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/ABExtensions.rb"]; AuthResponder* my_responder = [AuthResponder initAsService]; [my_responder setDelegate:self]; } -(oneway void)install_gems{ NSArray *args = [NSArray arrayWithObjects: @"gem", @"install", @"sinatra", nil]; [NSTask launchedTaskWithLaunchPath:@"/usr/bin/sudo" arguments:args]; NSLog(@"Ran AuthResponder.delegate.install_gems"); // This prints. } ... other privileges tasks. "sudo gem update --system" for one. I'm guessing the proxy object is performing the selector in it's own thread, but I want the current (privileged thread) to do it so I can use sudo. Can I force the distributed object to evaluate the selector on the tool's thread? How else can I accomplish this dryly/cocoaly?

    Read the article

  • Why does Email::MIME split up my attachment?

    - by sid_com
    Why does the attachment(ca. 110KiB) split up in 10 parts(ca. 11KiB) when I send it with this script using Email::MIME? #!/usr/bin/env perl use warnings; use strict; use Email::Sender::Transport::SMTP::TLS; my $mailer = Email::Sender::Transport::SMTP::TLS->new( host => 'smtp.my.host', port => 587, username => 'username', password => 'password', ); use Email::MIME::Creator; use IO::All; my @parts = ( Email::MIME->create( attributes => { content_type => 'text/plain', disposition => 'inline', encoding => 'quoted-printable', charset => 'UTF-8', }, body => "Hello there!\n\nHow are you?", ), Email::MIME->create( attributes => { filename => "test.jpg", content_type => "image/jpeg", disposition => 'attachment', encoding => "base64", name => "test.jpg", }, body => io( "test.jpg" )->all, ), ); my $email = Email::MIME->create( header => [ From => 'my@address', To => 'your@address', Subject => 'subject', ], parts => [ @parts ], ); eval { $mailer->send( $email, { from => 'my@address', to => [ 'your@address' ], } ); }; die "Error sending email: $@" if $@;

    Read the article

  • How do I stop cpan from reconfiguring each time? + More

    - by Leonard
    I'm running on a Mac (version 10.6.3) and am struggling to understand what is going on with my Perl installation. I let the system do a copy from my previous mac, and I appear to have a second perl installed, which appears earlier in my path. I can't tell (or remember) if I might have installed it with fink, macports or CPAN or what. type -a cpan cpan is /opt/local/bin/cpan cpan is /usr/bin/cpan I'm seeing two oddities. (To start with!) When I run cpan, and let it configure in ~lcuff/.cpan, each time I run it, it wants to reconfigure, giving the message: Sorry, we have to rerun the configuration dialog for CPAN.pm due to some missing parameters... Also, when I try to install File::Find::Rule (so I can list my CPAN modules, per the FAQ) I end up with an error message that I can't decipher or Google a solution for: Use of inherited AUTOLOAD for non-method Digest::SHA::shaopen() is deprecated at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/Digest/SHA.pm line 55. Catching error: "Can't locate auto/Digest/SHA/shaopen.al in \@INC (\@INC contains: /sw/lib/perl5 /sw/lib/perl5/darwin /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level /opt/local/lib/perl5/site_perl/5.8.9 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level /opt/local/lib/perl5/vendor_perl/5.8.9 /opt/local/lib/perl5/vendor_perl /opt/local/lib/perl5/5.8.9/darwin-2level /opt/local/lib/perl5/5.8.9 /Users/lcuff) at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/Digest/SHA.pm line 55\cJ" at /opt/local/lib/perl5/5.8.9/CPAN.pm line 359 CPAN::shell() called at /opt/local/bin/cpan line 198

    Read the article

  • Making a 64 bit shared library that dynamically links to a 32 bit library on Mac OS X Snow Leopard

    - by carneades
    Update: After some more reading I see that this problem is totally general, you can't mix architectures in the same process, so 64 bit Java cannot dlopen() a 32 bit library like FMOD. Is there any possible workaround for this, keeping in mind I'm writing my own C interface to the FMOD library? I need to make a 64-bit dylib on Max OS X because Java Native Access only likes 64-bit libraries on 64-bit machines. The problem is, my C source code dynamically includes FMOD which on Mac only provides 32-bit dylibs. When I try to compile without the -m32 option (since I must output a 64-bit dylib) I get the following error: gcc -dynamiclib -std=c99 -pedantic -Wall -O3 -fPIC -pthread -o ../bin/libpenntotalrecall_fmod.dylib ../../src/libpenntotalrecall_fmod.c -lfmodex -L../../lib/osx/ ld: warning: in /usr/lib/libfmodex.dylib, missing required architecture x86_64 in file Undefined symbols: "_FMOD_System_CreateSound", referenced from: _startPlayback in ccJnlwrd.o "_FMOD_Channel_GetPosition", referenced from: _streamPosition in ccJnlwrd.o "_FMOD_System_Create", referenced from: _startPlayback in ccJnlwrd.o "_FMOD_System_PlaySound", referenced from: _startPlayback in ccJnlwrd.o "_FMOD_Sound_Release", referenced from: _stopPlayback in ccJnlwrd.o "_FMOD_Channel_IsPlaying", referenced from: _playbackInProgress in ccJnlwrd.o "_FMOD_System_Update", referenced from: _streamPosition in ccJnlwrd.o _startPlayback in ccJnlwrd.o "_FMOD_Channel_SetPaused", referenced from: _startPlayback in ccJnlwrd.o "_FMOD_System_Release", referenced from: _stopPlayback in ccJnlwrd.o "_FMOD_System_Init", referenced from: _startPlayback in ccJnlwrd.o "_FMOD_Channel_SetVolume", referenced from: _startPlayback in ccJnlwrd.o "_FMOD_System_Close", referenced from: _stopPlayback in ccJnlwrd.o "_FMOD_Channel_SetCallback", referenced from: _startPlayback in ccJnlwrd.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [all] Error 1 Shouldn't it be possible to get a 64 bit dylib from my source code that dynamically includes 32 bit libraries?!

    Read the article

  • Nonetype object has no attribute '__getitem__'

    - by adohertyd
    I am trying to use an API wrapper downloaded from the net to get results from the new azure Bing API. I'm trying to implement it as per the instructions but getting the runtime error: Traceback (most recent call last): File "bingwrapper.py", line 4, in <module> bingsearch.request("affirmative action") File "/usr/local/lib/python2.7/dist-packages/bingsearch-0.1-py2.7.egg/bingsearch.py", line 8, in request return r.json['d']['results'] TypeError: 'NoneType' object has no attribute '__getitem__' This is the wrapper code: import requests URL = 'https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%(query)s&$top=50&$format=json' API_KEY = 'SECRET_API_KEY' def request(query, **params): r = requests.get(URL % {'query': query}, auth=('', API_KEY)) return r.json['d']['results'] The instructions are: >>> import bingsearch >>> bingsearch.API_KEY='Your-Api-Key-Here' >>> r = bingsearch.request("Python Software Foundation") >>> r.status_code 200 >>> r[0]['Description'] u'Python Software Foundation Home Page. The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to ...' >>> r[0]['Url'] u'http://www.python.org/psf/ This is my code that uses the wrapper (as per the instructions): import bingsearch bingsearch.API_KEY='abcdefghijklmnopqrstuv' r = bingsearch.request("affirmative+action")

    Read the article

  • Sourcing a script file in bash before starting an executable

    - by abigagli
    Hi, I'm trying to write a bash script that "wraps" whatever the user wants to invoke (and its parameters) sourcing a fixed file just before actually invoking it. To clarify: I have a "ConfigureMyEnvironment.bash" script that must be sourced before starting certain executables, so I'd like to have a "LaunchInMyEnvironment.bash" script that you can use as in: LaunchInMyEnvironment <whatever_executable_i_want_to_wrap> arg0 arg1 arg2 I tried the following LaunchInMyEnvironment.bash: #!/usr/bin/bash launchee="$@" if [ -e ConfigureMyEnvironment.bash ]; then source ConfigureMyEnvironment.bash; fi exec "$launchee" where I have to use the "launchee" variable to save the $@ var because after executing source, $@ becomes empty. Anyway, this doesn't work and fails as follows: myhost $ LaunchInMyEnvironment my_executable -h myhost $ /home/me/LaunchInMyEnvironment.bash: line 7: /home/bin/my_executable -h: No such file or directory myhost $ /home/me/LaunchInMyEnvironment.bash: line 7: exec: /home/bin/my_executable -h: cannot execute: No such file or directory That is, it seems like the "-h" parameter is being seen as part of the executable filename and not as a parameter... But it doesn't really make sense to me. I tried also to use $* instead of $@, but with no better outcoume. What I'm doing wrong? Andrea.

    Read the article

  • Creating and using a static lib in xcode (MacOSX)

    - by Alasdair Morrison
    I am trying to create a static library in xcode and link to that static library from another program. So as a test i have created a BSD static C library project and just added the following code: //Test.h int testFunction(); //Test.cpp #include "Test.h" int testFunction() { return 12; } This compiles fine and create a .a file (libTest.a). Now i want to use it in another program so I create a new xcode project (cocoa application) Have the following code: //main.cpp #include <iostream> #include "Testlib.h" int main (int argc, char * const argv[]) { // insert code here... std::cout << "Result:\n" <<testFunction(); return 0; } //Testlib.h extern int testFunction(); I right clicked on the project - add - existing framework - add other Selected the .a file and it added it into the project view. I always get this linker error: Build TestUselibrary of project TestUselibrary with configuration Debug Ld build/Debug/TestUselibrary normal x86_64 cd /Users/myname/location/TestUselibrary setenv MACOSX_DEPLOYMENT_TARGET 10.6 /Developer/usr/bin/g++-4.2 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/Users/myname/location/TestUselibrary/build/Debug -L/Users/myname/location/TestUselibrary/../Test/build/Debug -F/Users/myname/location/TestUselibrary/build/Debug -filelist /Users/myname/location/TestUselibrary/build/TestUselibrary.build/Debug/TestUselibrary.build/Objects-normal/x86_64/TestUselibrary.LinkFileList -mmacosx-version-min=10.6 -lTest -o /Users/myname/location/TestUselibrary/build/Debug/TestUselibrary Undefined symbols: "testFunction()", referenced from: _main in main.o ld: symbol(s) not found collect2: ld returned 1 exit status I am new to macosx development and fairly new to c++. I am probably missing something fairly obvious, all my experience comes from creating dlls on the windows platform. I really appreciate any help.

    Read the article

  • Perl - MySQL connection problem in windows

    - by dexter
    I have two folders php and perl they contain index.php and index.pl respectivly in index.pl my perl code looks like: #!/usr/bin/perl use Mysql; print "Content-type: text/html\n\n"; print "<h2>PERL-mySQL Connect</h2>"; print "page info"; $host = "localhost"; $database = "cdcol"; $user = "root"; $password = ""; $db = Mysql->connect($host, $database, $user, $password); $db->selectdb($database); when i run above code (ie type: http://localhost:88/perl/ in browser) following error comes Error message: Can't locate Mysql.pm in @INC (@INC contains: C:/xampp/perl/site/lib/ C:/xampp/perl/lib C:/xampp/perl/site/lib C:/xampp/apache) at C:/xampp/htdocs/perl/index.pl line 2. BEGIN failed--compilation aborted at C:/xampp/htdocs/perl/index.pl line 2. while this works: in browser http://localhost:88/php/ where index.php has: <?php $con = mysql_connect("localhost","root",""); if($con) { if(mysql_select_db("cdcol", $con)) { $sql="SELECT Id From products"; if(mysql_query($sql)) { $result = mysql_query($sql); if ($result)............

    Read the article

  • Inconsistency in modified/created/accessed time on mac

    - by Seth Johnson
    I'm having trouble using os.utime to correctly set the modification time on the mac (Mac OS X 10.6.2, running Python 2.6.1 from /usr/bin/python). It's not consistent with the touch utility, and it's not consistent with the properties displayed in the Finder's "get info" window. Consider the following command sequence. The 'created' and 'modified' times in the plain text refer to the "get info" window attributes. As a reminder, os.utime takes arguments (filename, (atime, mtime)). >>> import os >>> open('tempfile','w').close() 'created' and 'modified' are both the current time. >>> os.utime('tempfile', (1000000000, 1500000000) ) 'created' is the current time, 'modified' is July 13, 2017. >>> os.utime('tempfile', (1000000000, 1000000000) ) 'created' and 'modified' are both September 8, 2001. >>> os.path.getmtime('tempfile') 1000000000.0 >>> os.path.getctime('tempfile') 1269021939.0 >>> os.path.getatime('tempfile') 1269021951.0 ...but the os.path.get?time and os.stat don't reflect it. >>> os.utime('tempfile', (1500000000, 1000000000) ) 'created' and 'modified' are still both September 8, 2001. >>> os.utime('tempfile', (1500000000, 1500000000) ) 'created' is September 8, 2001, 'modified' is July 13, 2017. I'm not sure if this is a Python problem or a Mac stat problem. When I exit the Python shell and run touch -a -t 200011221234 tempfile neither the modification nor the creation times are changed, as expected. Then I run touch -m -t 200011221234 tempfile and both 'created' and 'modified' times are changed. Does anyone have any idea what's going on? How do I change the modification and creation times consistently on the mac? (Yes, I am aware that on Unixy systems there is no "creation time.")

    Read the article

  • Command not write in buffer with Expect

    - by Romuald
    Hello, I try to backup a Linkproof device with expect script and i have some trouble. It's my first script in expect and i have reach my limits ;) #!/usr/bin/expect spawn ssh @IPADDRESS expect "username:" # Send the username, and then wait for a password prompt. send "@username\r" expect "password:" # Send the password, and then wait for a shell prompt. send "@password\r" expect "#" # Send the prebuilt command, and then wait for another shell prompt. send "system config immediate\r" #Send space to pass the pause expect -re "^ *--More--\[^\n\r]*" send "" expect -re "^ *--More--\[^\n\r]*" send "" expect -re "^ *--More--\[^\n\r]*" send "" # Capture the results of the command into a variable. This can be displayed, or written to disk. sleep 10 expect -re .* set results $expect_out(buffer) # Copy buffer in a file set config [open linkproof.txt w] puts $config $results close $config # Exit the session. expect "#" send "logout\r" expect eof The content of the output file: The authenticity of host '@IP (XXX.XXX.XXX.XXX)' can't be established. RSA key fingerprint is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. Are you sure you want to continue connecting (yes/no)? @username Please type 'yes' or 'no': @password Please type 'yes' or 'no': system config immediate Please type 'yes' or 'no': Like you can see, the result of the command is not in the file. Could you, please, help me to understantd why ? Thanks for your help. Romuald

    Read the article

  • How can I track down "Template process failed: undef error" in Perl's Template Toolkit?

    - by swisstony
    I've moved a Perl CGI app from one web host to another. Everything's running fine except for Template Tookit which is giving the following error: "Template process failed: undef error - This shouldn't happen at /usr/lib/perl5/5.8.8/CGI/Carp.pm line 314." The templates are working fine on the other web host. I've set the DEBUG_ALL flag when creating the template object, but it doesn't provide any additional info about errors just loads of debug output. I can't post the template source as there's lots of client specific stuff in it. I've written a simple test template and that works okay. Just wondering if anyone had seen this error before or has any ideas on the quickest way to find a fix for it. EDIT: Here's a snippet of the code that loads and processes the template. my $vars = {}; $vars->{page_url} = $page_url; $vars->{info} = $info; $vars->{is_valid} = 0; $vars->{invalid_input} = 0; $vars->{is_warnings} = 0; $vars->{is_invalid_price} = 0; $vars->{output_from_proc} = $proc_output; ... my $file = 'clientTemplate.html'; #create ref to hash use Template::Constants qw( :debug ); my $template = Template->new( { DEBUG => DEBUG_SERVICE | DEBUG_CONTEXT | DEBUG_PROVIDER | DEBUG_PLUGINS | DEBUG_FILTERS | DEBUG_PARSER | DEBUG_DIRS, EVAL_PERL => 1, INCLUDE_PATH => [ '/home/perlstuff/templates', ], } ); $template->process( $file, $vars ) || die "Template process failed: ", $template->error(), "\n";

    Read the article

  • Am I correctly extracting JPEG binary data from this mysqldump?

    - by Glenn
    I have a very old .sql backup of a vbulletin site that I ran around 8 years ago. I am trying to see the file attachments that are stored in the DB. The script below extracts them all and is verified to be JPEG by hex dumping and checking the SOI (start of image) and EOI (end of image) bytes (FFD8 and FFD9, respectively) according to the JPEG wiki page. But when I try to open them with evince, I get this message "Error interpreting JPEG image file (JPEG datastream contains no image)" What could be going on here? Some background info: sqldump is around 8 years old vbulletin 2.x was the software that stored the info most likely php 4 was used most likely mysql 4.0, possibly even 3.x the column datatype these attachments are stored in is mediumtext My Python 3.1 script: #!/usr/bin/env python3.1 import re trim_l = re.compile(b"""^INSERT INTO attachment VALUES\('\d+', '\d+', '\d+', '(.+)""") trim_r = re.compile(b"""(.+)', '\d+', '\d+'\);$""") extractor = re.compile(b"""^(.*(?:\.jpe?g|\.gif|\.bmp))', '(.+)$""") with open('attachments.sql', 'rb') as fh: for line in fh: data = trim_l.findall(line)[0] data = trim_r.findall(data)[0] data = extractor.findall(data) if data: name, data = data[0] try: filename = 'files/%s' % str(name, 'UTF-8') ah = open(filename, 'wb') ah.write(data) except UnicodeDecodeError: continue finally: ah.close() fh.close() update The JPEG wiki page says FF bytes are section markers, with the next byte indicating the section type. I see some that are not listed in the wiki page (specifically, I see a lot of 5C bytes, so FF5C). But the list is of "common markers" so I'm trying to find a more complete list. Any guidance here would also be appreciated.

    Read the article

  • Why does my ActivePerl program report 'Sorry. Ran out of threads'?

    - by Zaid
    Tom Christiansen's example code (à la perlthrtut) is a recursive, threaded implementation of finding and printing all prime numbers between 3 and 1000. Below is a mildly adapted version of the script #!/usr/bin/perl # adapted from prime-pthread, courtesy of Tom Christiansen use strict; use warnings; use threads; use Thread::Queue; sub check_prime { my ($upstream,$cur_prime) = @_; my $child; my $downstream = Thread::Queue->new; while (my $num = $upstream->dequeue) { next unless ($num % $cur_prime); if ($child) { $downstream->enqueue($num); } else { $child = threads->create(\&check_prime, $downstream, $num); if ($child) { print "This is thread ",$child->tid,". Found prime: $num\n"; } else { warn "Sorry. Ran out of threads.\n"; last; } } } if ($child) { $downstream->enqueue(undef); $child->join; } } my $stream = Thread::Queue->new(3..shift,undef); check_prime($stream,2); When run on my machine (under ActiveState & Win32), the code was capable of spawning only 118 threads (last prime number found: 653) before terminating with a 'Sorry. Ran out of threads' warning. In trying to figure out why I was limited to the number of threads I could create, I replaced the use threads; line with use threads (stack_size => 1);. The resultant code happily dealt with churning out 2000+ threads. Can anyone explain this behavior?

    Read the article

< Previous Page | 235 236 237 238 239 240 241 242 243 244 245 246  | Next Page >