HN user

ojii

559 karma

https://github.com/ojii

Posts6
Comments167
View on HN

One tiny correction:

decorators are functions that take a callable argument and return a new callable

there's nothing forcing a decorator to return a callable. A decorator _could_ return anything it wants. I don't know why you would want that, but Python won't stop you.

While developers need to figure that out, users are left unable to use their apps.

Or worse, the developers get stuck in App Review Hell for over a week and are unable to release their fix to their users.

This happened to me when the reviewer took umbrage with our screenshots (which have passed numerous previous reviews) and kept rejecting our update. Meanwhile the app was bricked in some configurations with nothing anyone could do about it.

I think I got it to work by editing the config file at /etc/fahclient/config.xml and adding: <slot id='1' type='GPU'/>, then restarting the client. Took me some googling and trial and error though, so I agree this should be made clearer.

The issue in Japan, though, is that they already have a high-speed network running on the same route, meaning that the extra gain from the maglev will be marginal.

Tokyo-Osaka in an hour vs the current 2.5h, that's far from marginal, especially if you do a round-trip.

Having done that trip a couple of times recently for business, I can't wait for the Chuo Shinkansen to open.

Frink 8 years ago

How would it be harder than to make a room exactly 10 feet x 12 feet x 8 feet?

The main reason I'm not even considering PyPy is that it lags behind CPython by a couple of versions. I'm getting ready to move to 3.7 while PyPy is still on 3.5.

Quick two minute implementation:

    import multiprocessing
    
    import time
    
    
    NULL = object()
    
    
    def call_webservice(fail=False):
        if fail:
            time.sleep(10)
            return False
        else:
            return True
    
    
    def wait_until_timeout(timeout, *async_results):
        results = [NULL] * len(async_results)
        end = time.time() + timeout
        while time.time() < end:
            for index, result in enumerate(async_results):
                if results[index] is NULL and result.ready():
                    results[index] = result.get()
            if not results.count(NULL): break
        return tuple(None if result is NULL else result for result in results)
    
    
    def handler():
        with multiprocessing.Pool() as pool:
            handle1 = pool.apply_async(call_webservice, (True,))
            handle2 = pool.apply_async(call_webservice, (False,))
            start = time.time()
            realres1, realres2 = wait_until_timeout(0.5, handle1, handle2)
            duration = time.time() - start
            print(f'Took {duration:.3f} seconds')
        print(realres1, realres2)
    
    
    if __name__ == '__main__':
        handler()

What's your solution for function definitions for this?

  def very_long_function_name(arg_one, arg_two, arg_three, arg_four):
    ...
Concorde 10 years ago

There's a long-distance maglev train line under construction in Japan from Tokyo to Osaka, scheduled to be partially complete (Tokyo-Nagoya) in 2027 and fully complete in 2045 (if you're lucky and win the chance to buy a ticket, you can ride the bit of track that is complete already): https://en.wikipedia.org/wiki/Ch%C5%AB%C5%8D_Shinkansen

Stripe in Japan 10 years ago

I don't even have a credit card (I live in Japan). Stuff I buy online I pay at the convenience store or on delivery in cash, everything else I pay in cash or using my commuter pass (RFID).