Hacker News new | past | comments | ask | show | jobs | submit | oliland's comments login

Citymapper | Data Science and Software Engineering | London, UK

Our mission is to make cities usable.

We're combining one of the world's most loved transport apps with new kinds of shared mobility services.

Citymapper is a great place to work with a small and dedicated team.

We are hiring for all roles, including data science, web, iOS, Android, backend engineering.

Our tech stack keywords: Python, golang, C++, React, Kotlin, Swift, Tensorflow, AWS.

All roles at https://citymapper.com/jobs

Or contact me at oli at citymapper dot com.


Seems biased to sort alphabetically. I clicked away without ever reaching B!


That sounds truly awful. How did you manage to enjoy your ice cream without wifi?


Let me get this straight: Instead of entrusting my ISP with my preference for porn, I'm entrusting you.

I fail to see how this is any better. You're a recent compsci graduate and I'm sure you have good intentions. Can you explain how your "private proxy" servers work, so that it's infeasable for an attacker, or even yourself, to know which websites I've accessed?

ProTip: Saying "we don't store logs" doesn't really give me the proof I need.

This isn't how the internet is supposed to work.


I was there. You point the flashlight on your phone at your computers webcam. The software (Javascript / Canvas I think) lets you draw with the light, while you can change colours with your phone. The bonus part was where they used the intensity of the light as a Z-axis, so by moving the phone closer / further away you could build a 3D light painting in the canvas.


This answer purports a myth that compilers are magical black boxes, the sum of millions of hours of intense academic research that "you will never understand".

Replace "compiler" with "computer". Doesn't that make you angry? Answers like these do nothing but prevent people from learning about them.

If you are interested in compilers, here's Edinburgh University's notes from the course "Compiling Techniques", probably a good place to start. Don't let internet tough-guys stop you from learning.

http://www.inf.ed.ac.uk/teaching/courses/ct/


>computers are magical black boxes, the sum of millions of hours of intense academic research

Isn't that awesome? I can use the thing without ever understanding what it does :) I'm so glad my car works without me ever having to know anything about how it works. I know it requires some form of money (gas) to work. That's it. Money in -> Transport out. Perfect.

The linked post never proclaimed no one "will ever understand" compilers. That's just what you're reading into it. You try to get upset at it, so you do. It merely proclaims that compilers are incredibly complex, which is the nice thing about them. If compilers were stupid they'd be a lot less useful.


He's just saying the answer makes compilers sound intimidating.


Compilers are intimidating.

I mean, the basics of parsing and lexing are easy enough to understand & do and forming an AST is straightforward but all the "clever stuff" adfer that, all the hundreds and thousands of optimisation tests that are done - they are mind boggling.

Each one by itself is pretty straightfoward but start adding them up and layering them on top of each other and it gets crazy pretty quick.


That doesn't make me angry. I fully accept there are aspects of the stack that allow me to type this message that I will never understand.

Can you e.g. explain how a transistor works, from basic quantum mechanical principles? If not, then there's something in the stack you may never understand, because you're simply not interested in spending the time necessary to understand that at the level a physicist does.


I think you might have misinterpreted the context of "optimizing a single line of yours using hundreds of different optimization techniques based on a vast amount of academic research that you would spend years getting at" was lost.

He isn't saying compilers are based on a "millions of hours of intense academic research that you won't understand". He's saying the specific optimizations implemented by these compilers are based on "millions of hours of intense academic research that you won't understand".

While the general theory behind compilers isn't particularly complex (and is totally worth learning! Your message about people learning about compilers is spot on), production compilers do employ a significant number of complex optimizations. You won't be able to match these unless you spend a very significant amount of effort learning about these specific optimization techniques.

While learning the theories behind compilers is quite useful, I'd argue that learning N tricks to more efficiently translate C into ASM isn't practical unless you want to turn your compiler into a production one.


Sure you can understand the basics of a compiler from a college course on them. But what sets apart industrial level compilers is all the accumulated knowledge built into them. Students are expected to understand the whole compiler they build for class. But how many people understand every single optimization that GCC can do?

My point is, there's understanding how compilers work, and then there's understanding all of GCC. I wouldn't like it if someone made the former sound too intimidating for me, but I don't mind feeling intimidated by the latter.


Keep in mind that it's an answer to the question "Why don't we program in assembly?"

Computer Science majors should be familiar with how compilers work and the theory behind them. But the answer to the question is that for 99% of cases, using a higher-level language and leaving the optimization to a compiler written by subject matter experts makes sense. (ie. Don't re-invent the wheel.)


Don't forget to watch Episode IV in the terminal!

    $ telnet towel.blinkenlights.nl
When I was younger I went out of my way to get a V6 address just to watch it in color ;)


No color for me:

  Well, the IPv6 version is exactly the same as the IPv4 one.

       The difference is in the visitors...                              
                                                
       Je bent een Stoere Bikkel, aka You Rock.


Quoth oliland: > When I was younger I went out of my way to get a V6 address just to watch it in color ;)

Note the semi-colon ;-).


apt-get install miredo

That works as a last resort. Or sign up for SixXS using an AYIYA tunnel, apt-get install aiccu and enjoy.


Miredo? AYIYA? Yuck.

Just use HE.net's tunnelbroker and set up a 6in4 tunnel[1]. FWIW there was no color for me either when I connected via ipv6. Just the same message about different visitors as printed above. Just to be sure ran:

  telnet -6 towel.blinkenlights.nl

[1] http://www.shorewall.net/6to4.htm#SixInFour


Miredo/teredo is yuck indeed. ATIYA is not bad, I am not sure why you turn your nose to it. Practically it just adds 8 bytes to the headers compared to 6in4 yet is a lot easier to set up. Specifically, if you do not have a router that you control and that can do IPv6 and ip6tables, AYIYA is the easiest to set up and have a static address. I would not set it up for a server but for a small LAN it will be no different than 6in4.


I understand what you are saying, AYIYA is not as bad as miredo. But lets face it:

Router That You Control + IPv6 + ip6tables = Any Linux Box

It is even easier with:

Router That You Control + IPv6 + ip6tables + shorewall6 = Any Linux Box

Configuring the linux box is essentially as easy as appending the following to /etc/network/interfaces:

  ### IPv6

  auto he-ipv6

  iface he-ipv6 inet6 v4tunnel
        address  1234:987:1234:743::2
        netmask  64
        endpoint 209.51.161.14
        ttl      255
        gateway 1234:987:1234:743::1
        post-up sysctl -w net.ipv6.conf.all.forwarding=1
  
  
  iface eth1 inet6 static
        address 1234:567:8901:1::1
        netmask 64
Spend five minutes with /etc/shorewall6/shorewall6.conf and you are done. Granted my mom is not going to do that but for anyone on HN that should be a walk in the park.


Don't forget gogoc.


That's so awesome. I can't believe this exists. How did they make it?


From the creator:

http://www.asciimation.co.nz/asciimation/ascii_faq.html

From his page he says he just ported what this guy did to telnet.


It should be noted that the Star Wars asciimation guy also did the thoroughly awesome Jet Powered Beer Cooler using a jet engine built in his shed (in NZ) to chill his guinness to a respectable 2c, of which I am in awe.

http://www.asciimation.co.nz/beer/index.html


Oh my God he made it in a simple text editor using copy and paste. Mind blown.


And then read this too (if you wonder about the origin of the domain name): http://www.catb.org/jargon/html/B/blinkenlights.html


Related project from Berlin: http://blinkenlights.net/


Han does shoot first!


If your bottom line is gross revenue, why not just A/B test your pricing?

In an app store this is really simple. Pitch the app at a different price tier every week (ideally during a stable period with no major public holidays or obvious seasonal variations). One week will make more money than most. That's your price.


What you're describing is not really A/B testing.

Real A/B testing would mean to simultaneously show to different users, different pricing for the same product and I believe in some jurisdiction this could get you into a trouble legally speaking.


Unit testing (and by extension, TDD) is easy in Objective C: Just test your models. Your models are (should be) the only thing that makes your app unique.


I made this with my classmate from Edinburgh Uni. Thanks for submitting it!


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: