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

I did some research about this a while back: https://utdemir.com/posts/choosing-cloud-regions.html#:~:tex...

You are right, the best region that optimises median latency against all internet users over the world is `us-west-3`, which is Paris - I believe. Likely because it has much better latency towards Asia where the majority of internet users are.

I also investigated which two regions to choose for a multi-region setup, which ends up being London and Japan.


Turkish here. It's hard to believe, but there are different kinds of ice cream in Turkey.

The average ice-cream ("dondurma" in Turkish) you'd get in Turkey is the one you expect: sorbet or gelato, usually in a cone. It's what you'd get when you ask for an ice-cream at a random place.

The one described in this post is a specific kind of ice-cream we call "ice-cream from Maraş" ("Maraş dondurması" in Turkish). Which is great - but the post makes it sound like it is "the Turkish ice-cream" which is a bit misleading. You don't find it everywhere.


Thanks for the clarification. Now I want to see if I can get it somewhere nearby.


You're right! All layers except the topmost layer consist of non-overlapping store paths. It's not one-path-per-layer as there's a hard limit on number of layers, so we smush the packages "deeper" in the dependency tree together within a single layer. There was some work recently where you could specify which paths should correspond to which layers but I can't recall the exact function.

You do have the ability to add a "customisation" layer on top of your image in case you want to create some directories or run arbitrary modifications which does end up as an extra layer which _can_ override the previous layers hence it's always the topmost. But you usually don't need it.

Source: I did a large-ish refactor to the `buildLayeredImage` functions a couple of years ago. My contribution was adding a `streamLayeredImage` function where you can "stream" a derivation to a Docker image on-the-fly without copying any files/layers in the disk.


Hey, author of the library here, thanks for your comment! Disclaimer: It's been more than a year since I've written this, so I might've forgotten things.

This actually teaches me that one thing I should make it clear is this was essentially a weekend experiment from someone who has never used, let alone written a Lisp before.

There's no way it's a production grade software, there are places where the evaluator just borks for valid expressions.

I learned a lot when writing it, so I can probably do a large-ish refactor that would simplify many things and fix the inconsistencies.

> this uses lazy evaluation, because most Lisps use strict evaluation.

The evaluation semantics are pretty weird. It's lazy-ish mostly, but when evaluating there are a lot of places where I unnecessarily force evaluation of things. So I should make the semantics clearer and document them.

> The behaviour of the top-level forms changes when they are wrapped in `begin`

This is a bug, you are right .

> Since this dialect is pure (no side effects)

It's mostly pure. There are a couple of constructs like `assert` and `log` that perform side effects. And also as you mentioned the expressions in a begin can be macros that end up modifying the environment.

> The way `if` handles values other than true/false is backwards compared to most Lisps

You are likely correct and this is a bug!

---

Thanks again of your comments, I'll try to find some time to either rewrite the project, or at least document it better.


Hi! It looks quite polished for a weekend-style project :) But the "Current state" section is upfront about it. I should have noticed the commit date; I guess "archiving" the project would have sent a stronger signal.

Please don't rewrite it on my account (I'd just mention laziness and fix the `if` bug since it's trivial: https://github.com/utdemir/nixlisp/blob/4e0eec383363df72b7b4..., the comment already says the right thing). It would be interesting to see the "bork" examples if you still have them on hand (I'd even put them in the README).

It was fun to play with, thanks for making and publishing!


I'm sorry in advance for perpetuating the flamewar.

Disclaimer: Turkish here. I do not deny the Armenian Genocide, or think it was right for Azerbaijan to reclaim Karabakh with this way.

You are falling to the same fallacy as the Turkish government:

* Claiming Khojali massacre is a lie, disregarding the documented facts. Do not bring yourself down to the same level as genocide deniers; they will beat you with experience.

* The "they did that too" argument; as if any horrible act legitimizes the other one.

So, it makes a much better discussion if we all agree on documented facts and try to move forward from there (if there is any solution to move forward to). The "Armenian Genocide didn't happen" versus "Khojali Massacre didn't happen" discussion seems childish at this point, and it is not going to help either side in the long run.


As someone who is using NixOS for 8+ years, I do agree with both your problems.

(1) I do find that it's very rare having to implement a low level transitive dependency from scratch (most low-level system dependencies are already there, and for dependencies of a specific programming-language ecosystem you'd usually auto-generate them from things like `yarn2nix` or `poetry2nix`). However, I agree that once you need to do that for non-trivial library it quickly becomes painful and require intimate knowledge of both the build system and Nix environment.

(2) This is my main issue. My workflow is also having a local `nixpkgs` clone, and go find the function and the parameters I can use every time I don't remember how to use it. I also think that it is sustainable. There are many exciting improvements going on with the new CLI, so hopefully we will get nicer error messages and better tooling support in near future.

> but the execution has been a miserable experience for me to the extent that I can't make sense of people who report such positive experiences.

There are pain points, but the advantages for me were indispensable. Being able to pin dependencies accurately, reproduce an exact development environment deterministically, and use the single language to define applications, configurations, and even entire system images is a great benefit that I would need to use 10+ tools with individual quirks otherwise.


One and a half years ago I migrated to New Zealand from Turkey.

* It was almost my first time abroad, my English wasn't great, and I was new to the culture. However I was amazed that how welcoming and patient people were. I hear the opposite from my friends living in Europe and US.

* I found a job while in Turkey, and the company sponsored me for the visa; and since they were an accredited employer the visa process was painless.

* Job variety is definitely small. I think it is not that hard to find _a_ job since there's usually demand for IT; however they are all pretty similar to each other(big finance/telco companies). If you have a specific interest (FP/Haskell and smaller companies in my case) it would be hard to find a job you like.

* Rent is expensive. Almost every one of my single friends flatshare, but I was able to find a one bedroom flat to live with my partner. I pay about 40% of my salary to the rent.

* However I do not think living expenses are too much. Our weekly shopping are usually cheaper compared to Turkey relative to the income. And most of the stuff we like to do for fun is usually cheap or free.

* People are nice. The city feels safe. Nature is great, lots of great hikes just an hour drive from the city center.

Overall; I can not compare with Europe or US since I've never been there, but I'm glad I am here now. And moving here was not that hard, so I think it has everything it needs to be a Tech hub, other than momentum.


I know a guy who moved to New Zealand from Hungary, with several years experience in broadcast TV. He thought New Zealand was going to be a new start, and got a job at a regional TV station working with a friend of mine.

After about a year of working for that place, he got very angry with it and quit because they were cheap beyond what you can imagine. He ended up doing a lot of overtime to make up for software and hardware problems. A few years ago moved to Auckland to work for a production firm up there, thinking it would be a better job.

Rumor has it that he gave up and went back to Hungary.


Are you in Auckland with that kind of rent?


Yes, I live very close to Auckland city centre.


Thought about living anywhere else? Wellington/Christchurch and Dunedin all have fairly decent IT scenes.


I can consider living somewhere else; especially Wellington is a good option as you said. However currently I am happy with my job and living arrangements here, but definitely I will consider them when I want a change.

But honestly, I always thought that those cities had even less variety than Auckland.


I'm just today converted a 300ish lines of Python computer vision-machine learning script to MATLAB. Mind that I'm a long time Python programmer(4+ years), and just used MATLAB once or twice.

But surprisingly, the resulting MATLAB code was fast, clean(cleaner than Python version) and also compatible with vast amaount of machine learning algorithms written in MATLAB(thats the very reason I had to switch to MATLAB).

I always thought that Python can do everything cleaner and more elegant, but I'm sad that in MATLAB, its easier and cleaner.

At least, now I don't need to import numpy, cv2, scipy, scikit-image, scikit-learn, pylab, matplotlib and ipython. Also, installing them was pretty hard too(specially scipy).


There are certainly areas Matlab rocks, and some other that Python rocks. Because of the company support, Matlab has a large scientific community and is probably easier to install (Python has Anaconda and Sage, though).

However, there is one big (maybe a killing one) weakness of Matlab: it's proprietary. I used to work in a big company and need a Matlab license. The license costs 70k$, per year! It takes months to get the purchase approved. The biggest waste in choosing Matlab is the time to get it.

And because its proprietary, we'd have to KEEP buying for YEARS, otherwise our code won't run in the next project.

So we switched to Python in later projects, which does not require bureaucratic approval chains and provides code portability


GNU Octave is a basically identical language to MATLAB and, as the name suggests, is free. Identical to the point where most scripts will run using either platform without any issues or needing modification.

http://www.gnu.org/software/octave/


+1, must also mention oct2py, the Python to GNU Octave bridge, that runs m-files from python. Some matlab legacy m-files may be rescued in this way.

Sage and IPython are alternatives, too. http://www.sagemath.org/ http://ipython.org/


PS. I found these articles useful

Python vs Matlab http://www.pyzo.org/python_vs_matlab.html

10 Reasons Python Rocks for Research (And a Few Reasons it Doesn’t) http://www.stat.washington.edu/~hoytak/blog/whypython.html

Why Python is Better than Matlab for Scientific Software http://metarabbit.wordpress.com/2013/10/18/why-python-is-bet...


I also made an attempt to unify my resume in different formats.

But I ended up in much simpler, but not so advanced solution. I'm just writing in Markdown and use a Makefile to generate other outputs using Pandoc.

Here is the input: https://raw.githubusercontent.com/utdemir/resume/master/resu...

HTML Output: https://rawgit.com/utdemir/resume/master/build/resume.html

PDF Output: https://github.com/utdemir/resume/blob/master/build/resume.p...

And here is the whole project(I mean, the Makefile, and my Markdown resume): https://github.com/utdemir/resume


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

Search: