For example you could implement a credit system where anyone could be a creditor and vote (with their digital signature) what requests get approved. Then, once the money changes hands, the smart contract would automatically deduce que periodic payments, including the interests, and distribute it to the lenders in the correct proportions. If a payment is missed, a penalization or increased interest could be implemented.
I don't know if this would be currently possible with Ethereum because I haven't looked very deep into its technology, but if not I'm pretty sure some blockchain will allow this kind of interactions.
D uses C calling conventions and struct layout so it's pretty trivial to call D code from D or vicecersa and link together, the only step added over C++ is writing an include file with the declarations of the stuff you want to call.
It depends. If you don't care about the specific error and just want to notify the failure up the stack or recovering is perfectly fine. A lot of Go code with the same intent just do a lot of "if err!=nil return err" which is the same but writing for every function call.
Actually, D suports "fibers" where you have a "Task". Then you can switch the task handler to another implementation and have Go-like M:N coroutines. The default handlers in the stdlib are only thread based or single-thread coroutines but Vibe.d for example supports Go-like coroutines.
Still, Go is really hard to beat on that front because it makes it super easy and has the really brilliant feature of making almost everything that waits for IO interruptable inside a function when you call "go function()" without having to mark operations with "async".
Salaries in Madrid or Barcelona are more or less the same. Typical ranges are 18-28K for a junior, 36-52 for a senior and 42-70 for a lead. A CTO on a startup will depend a lot on the startup but 80-150k would not be uncommon for small ones.
As you can see on this article, people from Barcelona are sometimes a little chauvinist with their loved city so I want to clear some things said. Specifically on my 20 years of experience with engineers of both cities (and working in Barcelona sometimes, even tough I'm from Madrid) I've seen more or less the same ranges of English capabilities from engineers of both cities. It's true that people in Barcelona are more fluent in general in English, but with engineers and young people the level is about the same.
Engineers in startups and normal companies in Madrid doesn't wear suits. Only consultants, bank workers and similar do in my experience (also in Barcelona). Currently school and high school in Madrid is bilingual.
Somebody said that you can get a flat in downtown Barcelona for 800€. Thats pretty unrealized, only for very small or really crappy flats. 1200-1500 is more realistic. Madrid is about the same.
Most catalans won't have any problem speaking Spanish with a foreigner. Some will avoid speaking spanish with a Spaniard (not urban legend, happened to me more than once) as a way to assert their nationalism. But there are assholes everywhere on any city.
People in Barcelona is probably more warm and open and given to small talk. People in Madrid have this castillian character that is something between laconic/shy/cool that could sound like unfriendly but it really isn't.
The best climate for you will depend a lot on your preference to humid/dry climates. Barcelona is humid (not Florida level but almost) and Madrid is VERY dry. The temperatures are more extreme in Madrid (-5/40C are usually the extreme ranges in winter/summer) and Barcelona is could be 8/35 but being humid Barcelona 35 feel hotter than Madrid 40 since your body will transpire worse on an humid climate, but all working places and public transportation will have AC om both cities, so it really depends on what your body is accustomed to.
The startup scene is very healthy in both cities, specially on the latest years where investors are moving money outside of the broken housing market (In working on a startup in Madrid right now).
Other than that both are great cities with a lot of culture and night life and surely you'll enjoy both.
Well, everybody is free to switch editors as they like and I respect that. I've been using Vim non-stop for as much time as it has existed but I sometimes like to try other editors from time to time to see what cool features they have (which I add to Vim when I'm back since certainly somebody somewhere emulated them as Vim plugins), and I use IntelliJ for Java.
But the reasons of this article are pretty shallow. The article is screaming either "I'm really bad at googling stuff" or "I just want to switch to Sublime but I don't want to think about good reasons".
Let's see:
- "CtrlP doesn't work very well for me". Well, there is also Unite, FZF.vim (the one that I use after using several of these fuzzy openers) and others.
- "Relativenumber slowed Vim down": that bug what fixed in 2014, I think. Anyway I use relative numbers and don't have any problem (with an updated Vim).
- "Vim doesn't autoreload files if I tell him to do it". How Vim's programmers dare setting a default different from what the article author wants! And they even add an option to add insult to the injury! I find Vim default behavior of WARNING you that the file has changed but not auto reloading perfectly reasonable. It has saved my day several times for example.
- "I want better font rendering and more than 256 colors". Well, I use Linux instead of a Mac, but it also have a HiDPI screen (3200x1600 and external 4K monitor) and Vim font rendering works perfectly both in GVim and on console Vim using Konsole or Tilix (the terminal emulators that I've used recently). GVim DO display more than 256 colors by default and console Vim also does since 8.0 with "set termguicolors" if the terminal emulator supports it.
- "I don't miss any Vim commands with Sublime Vim emulation". Good for you, but this tells me that you were a very basic Vim user. Last time I checked Sublime lacked :global, :normal and a lot other things that are the bread and butter of any proficient Vim user.
Well, everybody is free to switch editors as they like and I respect that. I've been using Vim non-stop for as much time as it has existed but I sometimes like to try other editors from time to time to see what cool features they have (which I add to Vim when I'm back since certainly somebody somewhere emulated them as Vim plugins), and I use IntelliJ for Java.
But the reasons of this article are pretty shallow. The article is screaming either "I'm really bad at googling stuff" or "I just want to switch to Sublime but I don't want to think about good reasons".
Let's see:
- "CtrlP doesn't work very well for me". Well, there is also Unite, FZF.vim (the one that I use after using several of these fuzzy openers) and others.
- "Relativenumber slowed Vim down": that bug what fixed in 2014, I think. Anyway I use relative numbers and don't have any problem (with an updated Vim).
- "Vim doesn't autoreload files if I tell him to do it". How Vim's programmers dare setting a default different from what the article author wants! And they even add an option to add insult to the injury! I find Vim default behavior of WARNING you that the file has changed but not auto reloading perfectly reasonable. It has saved my day several times for example.
- "I want better font rendering and more than 256 colors". Well, I use Linux instead of a Mac, but it also have a HiDPI screen (3200x1600 and external 4K monitor) and Vim font rendering works perfectly both in GVim and on console Vim using Konsole or Tilix (the terminal emulators that I've used recently). GVim DO display more than 256 colors by default and console Vim also does since 8.0 with "set termguicolors" if the terminal emulator supports it.
- "I don't miss any Vim commands with Sublime Vim emulation". Good for you, but this tells me that you were a very basic Vim user. Last time I checked Sublime lacked :global, :normal and a lot other things that are the bread and butter of any proficient Vim user.
I work on several languages professionally being the only one without exceptions Go and I don't see how its idiotic pattern of checking the value returned after every single call is a massive improvement on anything except masochism.
I've bursts. Sometimes I can work three days non stop and sometimes I strugle to write any good code. Luckily I've some margin to decide on what to work every day so I do documentation or unit/integration testing the days my brain is downclocked.
That how I would maximize developer productivity (but NOT working hours) if I owned a company:
- Let them work at home, at any time they want. Just reserve some hours for meetings or stand-ups if you want. Don't control the hours, control that the tasks are progressing.
- Open source parts of the codebase, let the developers own some modules or components on their github accounts. This way the quality of the code will be a personal matter to them.
- If shit goes down or hard deadlines approach (this happens) pay overtime and do a post-mortem analysis of what happened but DON'T turn that into a blame fest just cold analysis because most often than not its random factors of life (downtime for family or health reasons, whatever) and of coding not being a hard science (that external library that looked so sweet turned a minefield for example ) the real causes. Anybody trying to do that in the postmortem should be called out.
- If the last point happens too much, fire the manager/lead/CTO (normal programmers should be fired too sometimes but only when their performance is substandard and this is sometimes that will be easy to see day by day).
I've been doing Python professionally for 13 years (among other languages, but Python is in the one I've used more). I like the language but I also hate some things (mainly, the GIL, the lack of static typing now lessened thanks to mypy and the slowness), but I never tough of the ternary if as evil or found a single instance where it confused me.
I don't know if this would be currently possible with Ethereum because I haven't looked very deep into its technology, but if not I'm pretty sure some blockchain will allow this kind of interactions.
For more examples, check: https://www.ethereum.org/token