HNHacker News
TopNewBestAskShowJobs

joejev

262 karma · joined October 1, 2014

submissionscomments
joejev··on DeepMind and Blizzard Open StarCraft II as an AI Research Environment
Destiny did this with just queens and drones. A lot of games were insane creep spread and spine crawler pushes.
joejev··on Hy – A Lisp-flavored Python
Python lambdas are just syntactic sugar for creating a function object. The ast can just build a named function and use it in the needed expression.
joejev··on Show HN: Lightweight format for small configuration files. (C)
C uses {} for arrays and this is written in C.
joejev··on Abe Passes Controversial Bill Boosting Japan Surveillance Powers
Why was there so much Japanese traffic on the old nyaa.se (now nyaa.pantsu.cat)? Most of the raws are uploaded from Japan.
joejev··on NumPy receives first ever funding, thanks to Moore Foundation
https://www.continuum.io/blog/news/continuum-wins-darpa-xdat...

It was blaze and bokeh. The description of blaze given in the article is pretty out of date at this point.

joejev··on Why Slack is inappropriate for open source communications
It is the other way around: just because the source is available free of charge does not make the software free as in freedom. For example, there are licenses that prohibit you from running the software for commercial use even though you have access to the source. This would not fit the FSF's definition of free software because the user should have the right to use the software as they wish.
joejev··on In Defense of C++
> - performance is important in much of the project

At scale this always becomes true. C++ can be written with reference counting and other high level concepts with runtime penalties. When you need to optimize or scale, you will never need to look to another language. I do a lot of numerical computing in Python and often need to drop into Cython or C; in C++ this wouldn't need to happen. One the the main goals of C++ is that "there is no language below C++".

High level language constructs are always nice, and C++ has a lot of "zero-cost" abstractions, meaning you only pay for what you need. For example, an iterator in C++ can just be a raw pointer in the case of iterating over a vector, but it is more complicated for a std::map because it is backed by a tree. C++ is a high-level language, so I don't understand the argument that you would be better off splitting your stack between the "important" parts and the slow parts.

joejev··on Making the move from Scala to Go
> but there's a reason why GOTO is considered to be brain cancer and pattern matching is generally considered to be great.

Look at any large C codebase and you will see plenty of goto statements to manage resource cleanup. The problem is using goto in place of structured control flow like loops and if/else. Statements like yours make it seem like there is a conceptual problem with a jump.

joejev··on Show HN: Phorth – A Forth-like language on the Python VM
I don't think that it will ever work on PyPy. The data stored in the `co_code` field is a super set of the instructions python understands. The `co_code` data starts with a prelude which is the repl and builtin words, then there is a large chunk of unallocated data (starting as `NOP`) followed by a suffix except block. Once you define a new word from within the interpreted phorth code you will write the address of each word called into the code object at the HERE marker, which starts at the beginning of the `NOP` segment. Basically if you write a word like: `: square dup * ;` then you will be writing the address of `dup` over the first two `NOP`s, then the address of `*` over the next two `NOP`s, finally you write the address of a return procedure over the next two `NOP`s after that. These are not valid instructions for the interpreter loop but the normal interpreter never hits them.
joejev··on Grokking Python 3’s str
I hear this complaint about print all the time but I have never understood it. Why is print so special that it needs dedicated synta? Most languages don't do this and people don't seem to mind. Also, I almost never physically type print, but I do type a lot of function calls, so if anything I am more accustomed to typing it as a call.
joejev··on Why I close pull requests
Why not send requests out of the blue? This happens to me all the time and I don't mind. It means someone cares enough to try to fix their problems instead of dumping it on me.
joejev··on Timing the time it takes to parse time
timeit does a run to decide how many loops to do, since it was much faster it ran it more times.
joejev··on Show HN: Stockrow.com – US companies financial data
Hey, cool site. I work a lot with financial data and decided to poke at this, here are some thoughts / findings:

- It would be nice to be able to look up companies by CIK instead of just ticker.

- You should support share class delimiters in nyse tickers like BRK.B instead of BRKB

- The chart on the first tab is not split adjusted but the chart on the second tab is but it is not called out anywhere. Check CBB to see a recent example.

- The 'stock price' indicator is not in the list of possible indicators but is in the text box by default.

- The 'share price' indicator shows 'no data to display'.

- There is a typo in the terms and conditions for line 7: "netowrking"

Overall this is a nice resource for quickly looking at fundamentals.

edit: formatting

joejev··on Vulnerable Method detection now available on SourceClear for Python projects
What is a security vulnerability in a library here? Do you mean something like using `numpy.frombuffer` to mutate strings in place, or using `numpy.lib.stride_tricks` to access invalid addresses?

Maybe this is something like functions calls which use improper sql escaping? I am not sure what is being detected.

joejev··on Vulnerable Method detection now available on SourceClear for Python projects
What does vulnerable mean in this context? Methods which forward input in a way that unlocks arbitrary code execution?
joejev··on PyPy gets funding from Mozilla for Python 3.5 support
PyPy is still not really a performance option for numerical computing.
joejev··on Introduction to Zipline: A Trading Library for Python
It is a little disingenuous to say that zipline doesn't support python, the short description from github says: "Zipline, a Pythonic Algorithmic Trading Library". Zipline also supports equities at minute and daily frequencies. There is no charting built into zipline itself but tearsheets and graphs can be generated with pyfolio (a project by the same people as zipline). Zipline also comes with the ability to pull pricing and splits data from quandl and yahoo.

I realize I can't win you over but I wanted to present a fair comparison for others ;)

Also, I work on zipline

joejev··on Introduction to Zipline: A Trading Library for Python
At first glance you would think that python would be slower than C#; however, all of the real computation is happening in Numpy (C), Pandas (Cython which compiles to C), or in our own Cython. The extra overhead of the python is mainly dominated by the array computations happening in C or the IO of loading data.
joejev··on Introduction to Zipline: A Trading Library for Python
Could you explain why you feel that it is better? What in particular does LEAN support that Zipline does not support?
joejev··on Go’s march to low-latency GC
Too bad no one can deploy linux servers because of all the segfaults.
joejev··on How fast can we make interpreted Python? (2013)
pypy only does python 2. Some people want to use the new features of python.
joejev··on Hjson, the Human JSON
so in this language these all do the same thing:

abc "abc" abc, "abc",

How does increasing the scope simplify things? Defining correct as "crashing less often" is a really bad idea, data formats _should_ be strict.

joejev··on Congratulations You’ve Been Fired
Not all startups are like this, the author is bitter about his experience.
joejev··on Cross-platform Rust rewrite of the GNU coreutils
It is a bit ironic that these "gnu" core utils are not licensed under the GPL
joejev··on Show HN: Inline C in Python
The .pth imports a file which at module scope registers a search function with the codec system. This function checks if the name is 'quasiquotes', if not, return None otherwise return a custom object that defines all the methods needed to turn bytes into string objects or go the other way. Because it is a pth in the site-packages, it gets executed at interpreter start. If you wanted to chat more about this you can email me with the email on my gh page. Not sure how long hn threads normally stay up.
joejev··on Show HN: Inline C in Python
I think some of this might be addressed in the implementation section of the docs. http://quasiquotes.readthedocs.org/en/latest/impl.html To summarize: there is no import hook or ast parsing happening. Instead, this works by manipulating the way python reads the bytes and converts it to strings. When the raw bytes are read, it looks for token patterns that match the syntax of a quasiquote. It then replaces those patterns with normal function call syntax that is valid. A cute thing that can be done (that I need to document) is that you can "translate" any python from quasiquotes by doing something like:

'[$qq|this is the body|]'.encode('utf-8').decode('quasiquotes') "qq._quote_expr(0,' this is the body')"

joejev··on Show HN: Inline C in Python
I was considering linking to the README (the index of the readthedocs page) but I wasn't sure if that would highlight the C inlining as much as I wanted. To summarize from the readme: After `pip install`ing the package, you can run quasiquoted code by including `# coding: quasiquotes` and then running under the normal CPython interpreter.
joejev··on Show HN: Inline C in Python
Cython would definitly be possible. It would probably work the same way the C quasiquoter does where it creates a function that accepts the scope and then executes the code. It would even be easier because it wouldn't need to do a first pass compile to get the missing names. I will try to work on this soon.
joejev··on Fractal Lab
The software looks awesome, the combination of your voice and the video was really soothing.
joejev··on The new team member that bothers me every day
It is not that simple to _not_ be affected by the actions of others.
← PreviousPage 2 of 3Next →