php –observations

UPDATE: 30-Jul-2013 1404 hrs

For the record, Am using php 5.3.10-1ubuntu3.7

I have recently started picking up php and playing around with it, for my new gig. I was expecting to get pissed off with the static type declaration(i know,php supports dynamic typing) as a convention, but funnily enough, i liked that part. Infact, working on python for 4 years has biased me to become blind towards the advantages of static types and type specific thinking when designing a new program.

But the most pleasant surprise of all so far has been the error from the interpreter. So far they have been extremely helpful and to the point. In the past, my biggest initial problem in learning a new language has been the error and warning messages thrown by the compiler/interpreter. Am not sure whether this means php interpreter’s error messages are multiple orders of magnitude better than others or my understanding of computers has gone up more than i assumed. I ofcourse, would prefer the latter interpretation, but most likely the truth is somewhere in between. The real hard question, exactly where in between and at what distance from which? Hmm.. sounds like a case for bayesian reasoning*.

One thing that has been annoying is that semi-colon to end of the line to signify end of statement. But perhaps because i started poking around C recently, it hasn’t been as annoying as i would have expected. Just mild annoyance.

1514 hrs..
Now begin the real annoying part.
PHP Parse error: syntax error, unexpected ‘)’, expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in /home/anand/workspace/neo4j_update/test.php on line 13

What the hell is T_PAAMAYIM_NEKUDOTAYIM ?? Sounds like malayalam to my ears and auditory cortex,which are perhaps the least trained(in disciplinary/practice/cognitive control/selection(aka ACC regulation) terms) of my faculties :-). Unfortunately am stuck right now without power and internet duh….that’s even worser…

Time to go find a coffee shop??
Ah well, i still have my mobile connection..

1528 hrs..
Hmm.. if i pass blank value for filename the fopen function returns a boolean false. Hmm…i should check for it..

Oh well time for a nap..

31-July-2013 1100 hrs..
It seems i was wrong. PHP does support first-class functions. See here.

But more reading around tells me that the biggest problems a python programmer would face migrating to php is semantic. For example take this array_filter function here. It’s a straightforward map function in python. Only the map func works on both lists and dictionaries. Only in php a list is also an array, only with auto-generated integer keys. Now it’s debatable which is better and am not qualified to comment on php’s implementation either, but i will observe that for anyone more familiar with math involved list sounds more natural than array. Perhaps for CS grads associative array with auto-gen integers for keys sounds natural?? I wouldn’t know.

Either way, i have a suspicion it is one of the reasons php doesn’t have the equivalent of scipy or numpy.

1130 hrs..
And this link here suggests that scope is also similar to that of python’s. i.e: by default the most immediate scope/variable definition is used. And to specify something outside global is used. Though static is rather absent in python. but then, with functions having attributes like any other object, we don’t need static per se.

1303 hrs.
Damn that dictionary access with key, value separation at the for look statement instead of object.get() takes some getting used to..

And more importantly itertools.. is rather absent.. there seems to be this., but for example it doesn’t have set cross product functions.. not to mention permutations and combinations . This seems useful though at the cost of a dependency.

And prefixing the variable name with $ is annoying to do every single time.. damn..

In summary, it’s worth learning the basics of php for appreciating some of the python’s subtleties and their value..

Otherwise, it’s not very useful.

*– perhaps some other time.

Music –opinions by an amateur music fan

Disclaimer: Am new to Music connoisseuring. My (Goto when need to focus records) have been and still are J.S. Bach and “How to name it” by Illayaraja.

Coldplay has a style that’s very reminiscent of The Beatles..(I like them both basically) I suspect it’s the base notes(not sure what instrument anyone?)

What do teachers make??

What Teachers make?? …. —
TLDR: Think of the children. Check out the link.

This makes me sad, when i think about the general attitude towards school, and a generic, one size fits all teaching method being forced upon our teachers, by those so called educators and education scientists(backed by half-assed statistics i may add). Am more and more convinced that a majority of education will now happen outside classrooms for the foreseeable future. Taught by or rather learnt by students from onlookers, parents, and relatives who for the most part are not thinking about the lessons they are imparting.

The real question is, are we(as a society) aware of that responsibility, to act in ways that will pass on only our best to the next generation? If so, i don’t think we are acting like it. So the next question, is is this what we want to teach?  I sometimes think we are teaching our kids that it’s ok to pass on blame and responsibility, while demanding for rights and service too much. 

No wonder some people at Ayn Rand Institute talk about “Entitlement Generation”. 


Some FB updates, about coming to bangalore:

UPDATE:  25-June-2013

Darn it.. I’ve been bangalored.. I just didn’t know it till today, when i came to bangalore…

And the thiruvizha style raatinam and rides renamed as expo is amusing

Also i had forgotten how much i enjoyed running/sprinting in the drizzling cold of a bangalore evening ..

Update: 21-July-2013
Aha, now i remember why i hate bangalore. . The relentless cold, the tiring loneliness, and most important of all, the mindlessly  materialistic people… Darn..

A song of ice and fire — comments/review/thoughts/notes


Am reading the ice and fire right now..
And gotta admit it is some compelling story telling. I started off at book 1 some 5-7 days ago, ago and have been going on continuously
Rarely have i been able to put it down for more than 2 hrs.
It has the character’s POV structure.
And therefore enables him to create the characters well enough to develop sympathy/empathy in the reader.
He doesn’t really hold back on leaving one character’s chapter at a suspense either and jumping to another character.
But for all of these pros, he sacrifices communicating duration passing/ duration judgement/ tempo of the events of the story.
It keeps springing up surprises in the mind of the reader, to realize what seemed to be temporally distant in his mind earlier, are temporally very close(almost simultaneous).

And the lack of clear map/spatial location or knowledge, doesn’t help either.(Perhaps in this case the author has done a good job, but i have been hasty in skipping some details.)
Also the massive number of characters he juggles around, with trouble in identification, multiple names and nicknames

Not to mention the lack of conversion factors between, golded dragon, silver stag and pennies.
he could have used them convey a sense of time, if he kept spiking the dragon rates.
After all, lannisters seems to have infinite gold supply and though it’s not clear about minting, i suspect they might be the ones.

And so far i have finished the first three books, he has kept a very cool/mysterious narrative about magic.
That is to say, no explicit magic spells named, not exactly acknowledged by all characters the existence of magic etc..

Infact, i think part of the goal is to keep options open. He could use the nature of magic to swing the plot anyway he wants in the 4th book.
I’ll see. Ex: to me it looks like the beric’s knights come back from dead more like inferi/zombie in the physical body state being same as that when they died.
But they don’t exactly sound as part of what can be called lord of lighthood.. or may be am just being too literal thinking about the zombie picture,
rather than what they do.

Book 4:
Damn it, he seems to have moved away from the character wise titles/chapters to a mix of the standard descriptive titles and characters.
hmmm..interesting.. Damn it,,.. it doesn’t conclude the plot either.. In the drive to get as much detail as possible he has extended
it too.. oK no more predatory reading on his books.. but rather ok i’ll read it when i get around to it types..
Now i need to get Book 5, but am not getting it for some time to come.. I’ve better things to do..
To his credit, the author has created a whole universe, and seems to have inspired other people to write around him.
That doesn’t happen often in fantasy and fiction worlds, or rather it happens, but not with every story or every author.
Am impressed to that extent. Also so far that mysterious nature of magic is preserved.

interview fuckup

Phew that went bad(rancid?) quicker than i expected. I sent her the one page resume, since it’s a startup,
and usually they don’t have the patience to look at a 4 page resume, and prefer to construct their own story out of github and other profiles.
I made the mistake writing the subject of the mail as Product designer –python instead developer, even though that was the ad i had seen.
She wrote back pointing out my profile is interesting but matches developer.
and then asking a few questions about career plans for 1-2 years. reason for short job stints in the past etc..
I answered, and get a reply asking if i have seen their work, I reply, i haven’t tried it out but summarize what i understand to be the basic pitch.
She drops a rude reply, that if am looking for technical challenges, i ought to look deeper into company sites etc..
Damn it, am tempted to write piss off, stupid bitch, but assume there’s been some miscommunication,
and write back saying, I applied because i saw your site and thought, you could use some graph theory applications and NLP too.
but it seems we don’t have skillset match. She replies it’s more of an attitude mismatch.
What the Fuck? i agree.. i would hate working with that childish, arrogant bitch.
If she can’t think of a better question than, “Have i seen her product”, she doesn’t deserve a better answer than “Suggestions for smarter networking”
or something along the lines.
and then it’s an attitude problem. it has taken out all of my civility reserves to just reply ‘ as you say madam’

Apparently this is the CEO. Am really tempted to publish the full email thread and identifying details, partly out of spite and partly out of a need to leave my biased interpretation open to criticism.

Bah.. i know startups are hard pressed and heavily under pressure, but now i also know, why some smart academics, don’t go into business.

Phew.. that was exasperating… am not sure i should be publishing this either… Damn it..

Building IronPython on ubuntu 13.04 with mono

In another of those obviously pointless, crazy ideas* i come up with, i decided that since Ubuntu supports mono and C# programming via that, i need to install Iron python on my Ubuntu 13.04 box.(That poor laptop will cry out if it could, my old one certainly did).

Anyways i found this so dutifully did run apt-get install ironpython, apparently that package is not available in my current software sources repo. OK time to figure out where it is available and add that source repo, in the mean time i can also put in a git clone as mentioned here See am skeptic it will work out of the box even if i find a software source and install ironpython from there..

That blog post mentions pypy and jython as other implementations and refers to both jython and ironpython as GIL less.. Oh cool, ofcourse i have to try jython now what choice do i have ? **dramatic brow rise** :-)
and jython works out fine with no problems at all. i download the standalone jar file and run it as
java -jar and it just starts up the python interpreter shell, no complaints at all… Wow..i was expecting some problems there..

Turns out ironpython is weird. The standard make all runs with a lot of messages a few seem to be warnings but overall reports a success with 0 errors.
Yet according to this there must be a couple .exe’s under bin/ of the source folder, but there isn’t.

Hmm. something fishy.. Turns out they are just under the folder bin/Debug/ipy.exe and running with mono ipy.exe works and gives a python shell.. impressive.. still can’t find the ir.exe, but given i was just testing out the building part, i’ll stop and conclude the experiment here..


* — generally inspired by some blog post and in this specific case inspired by this one.

Miller-Rabin Primality Test

Math ∩ Programming

Problem: Determine if a number is prime, with an acceptably small error rate.

Solution: (in Python)

Discussion: This algorithm is known as the Miller-Rabin primality test, and it was a very important breakthrough in the study of probabilistic algorithms.

Efficiently testing whether a number is prime is a crucial problem in cryptography, because the security of many cryptosystems depends on the use of large randomly chosen primes. Indeed, we’ve seen one on this blog already which is in widespread use: RSA. Randomized algorithms also have quite useful applications in general, because it’s often that a solution which is correct with probability, say, $latex 2^{-100}$ is good enough for practice.

But from a theoretical and historical perspective, primality testing lied at the center of a huge problem in complexity theory. In particular, it is unknown whether algorithms which have access to randomness and can output probably correct answers are more…

View original post 425 more words

pypy compilation error

Am trying to compile pypy on my core i7 3632 QM machine with 4GB of memory. But i run into pdb with an error “can’t allocate memory” Am running a ubuntu 13.04 with the latest updates. Here’s the error stack below..


[platform:execute] gcc /tmp/usession-default-1/platcheck_56.o -pthread -lrt -lrt -o /tmp/usession-default-1/platcheck_56
[platform:execute] gcc -c -O3 -pthread -fomit-frame-pointer -Wall -Wno-unused /tmp/usession-default-1/platcheck_57.c -o /tmp/usession-default-1/platcheck_57.o
[platform:execute] gcc /tmp/usession-default-1/platcheck_57.o -pthread -lrt -lrt -o /tmp/usession-default-1/platcheck_57
[751b] translation-task}

[Timer] Timings:
[Timer] annotate                       — 287.2 s
[Timer] ==========================================
[Timer] Total:                         — 287.2 s
[translation:ERROR] Error:
[translation:ERROR]  Traceback (most recent call last):
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/translator/goal/”, line 317, in main
[translation:ERROR]     drv.proceed(goals)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/translator/”, line 733, in proceed
[translation:ERROR]     return self._execute(goals, task_skip = self._maybe_skip())
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/translator/tool/”, line 114, in _execute
[translation:ERROR]     res = self._do(goal, taskcallable, *args, **kwds)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/translator/”, line 284, in _do
[translation:ERROR]     res = func()
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/translator/”, line 321, in task_annotate
[translation:ERROR]     s = annotator.build_types(self.entry_point, self.inputtypes)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 93, in build_types
[translation:ERROR]     return self.build_graph_types(flowgraph, inputcells, complete_now=complete_now)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 149, in build_graph_types
[translation:ERROR]     self.complete()
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 203, in complete
[translation:ERROR]     self.complete_pending_blocks()
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 198, in complete_pending_blocks
[translation:ERROR]     self.processblock(graph, block)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 348, in processblock
[translation:ERROR]     self.flowin(graph, block)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 412, in flowin
[translation:ERROR]     self.consider_op(block, i)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 606, in consider_op
[translation:ERROR]     resultcell = consider_meth(*argcells)
[translation:ERROR]    File “<4318-codegen /home/anand/playspace/languages/python/pypy/rpython/annotator/>”, line 3, in consider_op_getattr
[translation:ERROR]     return arg.getattr(*args)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 724, in getattr
[translation:ERROR]     return bookkeeper.pbc_getattr(pbc, s_attr)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 605, in pbc_getattr
[translation:ERROR]     return first.s_read_attribute(attr)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 974, in s_read_attribute
[translation:ERROR]     return self.bookkeeper.immutablevalue(value)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 396, in immutablevalue
[translation:ERROR]     result.dictdef.generalize_value(self.immutablevalue(ev))
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 477, in immutablevalue
[translation:ERROR]     x._cleanup_()
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/interpreter/”, line 123, in _cleanup_
[translation:ERROR]     self.getdict(
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/interpreter/”, line 116, in getdict
[translation:ERROR]     w_value = self.get(name)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/interpreter/”, line 69, in get
[translation:ERROR]     w_value = self.getdictvalue(space, name)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/interpreter/”, line 81, in getdictvalue
[translation:ERROR]     return self._load_lazily(space, name)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/interpreter/”, line 91, in _load_lazily
[translation:ERROR]     w_value = loader(space)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/interpreter/”, line 190, in ifileloader
[translation:ERROR]     value = eval(spec, d)
[translation:ERROR]    File “<string>”, line 1, in <module>
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/pypy/module/pyexpat/”, line 405, in get_expat_version
[translation:ERROR]     return space.wrap(rffi.charp2str(XML_ExpatVersion()))
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/rtyper/lltypesystem/”, line 243, in wrapper
[translation:ERROR]     res = call_external_function(*real_args)
[translation:ERROR]    File “<518-codegen /home/anand/playspace/languages/python/pypy/rpython/rtyper/lltypesystem/>”, line 6, in call_external_function
[translation:ERROR]     res = funcptr()
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/rtyper/lltypesystem/”, line 1291, in __call__
[translation:ERROR]     return callb(*args)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/rtyper/lltypesystem/”, line 1208, in __call__
[translation:ERROR]     cfunc = get_ctypes_callable(self.funcptr, self.calling_conv)
[translation:ERROR]    File “/home/anand/playspace/languages/python/pypy/rpython/rtyper/lltypesystem/”, line 1140, in get_ctypes_callable
[translation:ERROR]     libpath = ctypes.util.find_library(libname)
[translation:ERROR]    File “/usr/lib/python2.7/ctypes/”, line 253, in find_library
[translation:ERROR]     return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name))
[translation:ERROR]    File “/usr/lib/python2.7/ctypes/”, line 242, in _findSoname_ldconfig
[translation:ERROR]     f = os.popen(‘/sbin/ldconfig -p 2>/dev/null’)
[translation:ERROR]  OSError: [Errno 12] Cannot allocate memory
[translation:ERROR] Processing block:
[translation:ERROR]  block@3 is a <class ‘rpython.flowspace.flowcontext.SpamBlock’>
[translation:ERROR]  in (pypy.module.imp.interp_imp:155)is_builtin
[translation:ERROR]  containing the following operations:
[translation:ERROR]        v45 = getattr(space_2, (‘str0_w’))
[translation:ERROR]        v46 = simple_call(v45, w_name_0)
[translation:ERROR]        v44 = getattr(space_2, (‘builtin_modules’))
[translation:ERROR]        v47 = contains(v44, v46)
[translation:ERROR]        v48 = is_true(v47)
[translation:ERROR]  –end–
[translation] start debugger…
> /usr/lib/python2.7/ctypes/
-> f = os.popen(‘/sbin/ldconfig -p 2>/dev/null’)


Looks like it is time to dig around and understand the pypy architecture.. Phew i was hoping to avoid that at the first run.. oh well as always it nothing is ever as simple as it seems.. :P

UPDATE 3 July 2013 00:53 AM
Hypothesis 1: i have been running my OS from a pendrive with misconfigured swap partition. Time to edit and fix /etc/fstab and reboot to test.

UPDATE 12 July 2013 19:37 PM
OK that lack of swap partition was the problem. I was able to compile pypy successfully. See details below:
I am using a Dell inspiron with core i7 3rd Gen. processor and 4 GB RAM.

time python rpython/bin/rpython pypy/goal/
[Timer] Timings:
[Timer] annotate — 421.1 s
[Timer] rtype_lltype — 1713.8 s
[Timer] backendopt_lltype — 193.7 s
[Timer] stackcheckinsertion_lltype — 150.8 s
[Timer] database_c — 213.1 s
[Timer] source_c — 404.4 s
[Timer] compile_c — 397.8 s
[Timer] ===========================================
[Timer] Total: — 3494.7 s

real 59m48.626s
user 51m37.880s
sys 0m4.224s

Time try out the other target numpy. And then may be i can try my hand at creating a new target, perhaps scikit-learn?? We’ll see if i am up to that task

UPDATE: 12 July 19:42 PM
Hmm numpy fails with the python rpython. some signature mismatch.. Here’s the error stack

[Timer] Timings:
[Timer] annotate — 2.0 s
[Timer] ========================================
[Timer] Total: — 2.0 s
[translation:ERROR] Error:
[translation:ERROR] Traceback (most recent call last):
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/translator/goal/”, line 321, in main
[translation:ERROR] drv.proceed(goals)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/translator/”, line 732, in proceed
[translation:ERROR] return self._execute(goals, task_skip = self._maybe_skip())
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/translator/tool/”, line 114, in _execute
[translation:ERROR] res = self._do(goal, taskcallable, *args, **kwds)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/translator/”, line 283, in _do
[translation:ERROR] res = func()
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/translator/”, line 320, in task_annotate
[translation:ERROR] s = annotator.build_types(self.entry_point, self.inputtypes)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 93, in build_types
[translation:ERROR] return self.build_graph_types(flowgraph, inputcells, complete_now=complete_now)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 149, in build_graph_types
[translation:ERROR] self.complete()
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 203, in complete
[translation:ERROR] self.complete_pending_blocks()
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 198, in complete_pending_blocks
[translation:ERROR] self.processblock(graph, block)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 348, in processblock
[translation:ERROR] self.flowin(graph, block)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 412, in flowin
[translation:ERROR] self.consider_op(block, i)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 606, in consider_op
[translation:ERROR] resultcell = consider_meth(*argcells)
[translation:ERROR] File “”, line 3, in consider_op_simple_call
[translation:ERROR] return arg.simple_call(*args)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 155, in simple_call
[translation:ERROR] return“simple_call”, args_s))
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 737, in call
[translation:ERROR] return bookkeeper.pbc_call(pbc, args)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 669, in pbc_call
[translation:ERROR] results.append(desc.pycall(schedule, args, s_previous_result, op))
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 297, in pycall
[translation:ERROR] inputcells = self.parse_arguments(args)
[translation:ERROR] File “/home/anand/playspace/languages/python/pypy/rpython/annotator/”, line 265, in parse_arguments
[translation:ERROR] (, e.getmsg()))
[translation:ERROR] TypeError: (‘signature mismatch: numpy_compile() takes exactly 1 argument (2 given)’, <
[translation:ERROR] Occurred processing the following simple_call:
[translation:ERROR] (KeyError getting at the binding!)
[translation:ERROR] v2 = simple_call((function numpy_compile), v0, v1)
[translation:ERROR] In :
[translation:ERROR] Happened at file pypy/goal/ line 36
[translation:ERROR] ==> a = numpy_compile(bc, size)
[translation:ERROR] a = a.compute()
[translation:ERROR] Known variable annotations:
[translation:ERROR] v0 = SomeString(no_nul=True)
[translation:ERROR] v1 = SomeInteger(knowntype=int, nonneg=False, unsigned=False)>)
[translation:ERROR] Processing block:
[translation:ERROR] block@39 is a
[translation:ERROR] in (targetnumpystandalone:33)main
[translation:ERROR] containing the following operations:
[translation:ERROR] v2 = simple_call((function numpy_compile), v0, v1)
[translation:ERROR] v3 = getattr(v2, (‘compute’))
[translation:ERROR] v4 = simple_call(v3)
[translation:ERROR] –end–
[translation] start debugger…

pg’s post on startup investing

Just a bunch of thoughts(occurred while reading actively) about the blog post here.


Does that mean investors will make less money? Not necessarily, because there will be more good startups. The total amount of desirable startup stock available to investors will probably increase, because the number of desirable startups will probably grow faster than the percentage they sell to investors shrinks.


There’s a rule of thumb in the VC business that there are about 15 companies a year that will be really successful. Although a lot of investors unconsciously treat this number as if it were some sort of cosmological constant, I’m certain it isn’t. There are probably limits on the rate at which technology can develop, but that’s not the limiting factor now. If it were, each successful startup would be founded the month it became possible, and that is not the case. Right now the limiting factor on the number of big hits is the number of sufficiently good founders starting companies, and that number can and will increase. There are still a lot of people who’d make great founders who never end up starting a company. You can see that from how randomly some of the most successful startups got started. So many of the biggest startups almost didn’t happen that there must be a lot of equally good startups that actually didn’t happen.

There might be 10x or even 50x more good founders out there. As more of them go ahead and start startups, those 15 big hits a year could easily become 50 or even 100.


       paul graham is an optimist and believes total economic activity(productive output??) will only grow in the future.. hmm..
        Am reading his post on trends in startups. and i still think his optimism is closer to the truth.
        the reasoning he gives for his conclusion  is via negativa, but most likely i like optimism is why i agree, any case.
        I also realize the reason i like his posts so much, he knows the basic math of stats and calculus,
            and better can express his opinions and ideas about trends in reasonably simple words, though,
            i think his avoidance of equations makes his posts a little verbose, but it is perhaps justified(nay pragmatic), given the math hate/fear that prevails and topics he writes on.

Right now, VCs often knowingly invest too much money at the series A stage. They do it because they feel they need to get a big chunk of each series A company to compensate for the opportunity cost of the board seat it consumes. Which means when there is a lot of competition for a deal, the number that moves is the valuation (and thus amount invested) rather than the percentage of the company being sold. Which means, especially in the case of more promising startups, that series A investors often make companies take more money than they want.           Like a lot of bad things, this didn’t happen intentionally.


He’s definitely an optimist :-P,
            I would have interpreted,Series A investors wanting to invest a minimal amount of the company stock’s worth as definitely malicious planning, but then i have no real experience.

            <blockquote> You can’t fight market forces forever.</blockquote>, That’s a great quote for any article on economy.