Vim as a Python IDE, or Python IDE as Vim - <AUTHOR> http://blog.jetbrains.com/pycharm/2013/06/vim-as-a-python-ide-or-python-ide-as-vim/

<comment><USER2> I think JetBrains' IDEs are the best around. But I'm sorry, IdeaVim is not Vim.

I've tried hard to use JetBrains' IDEs, having paid full-price for IntelliJ at one point, and later RubyMine. And the thing that stopped me both times was IdeaVim not being good enough. It has reasonable functionality, but you can forget about using any standard Vim plugins, muscle memory gets confused when some things don't work, and it can really slow things down. Playing back macros (which it does at least support) can grind the editor to a halt.

So I went back to Vim. Running NERDTree and most importantly NERDTreeTabs plugin. As well as other useful stuff like Ctrl-P. It's a good setup. Not perfect; it's still fundamentally a 30 year old editor and it seems like something's wrong not to be able to take advantage of all of the great features in IntelliJ's tools, but text editing is still the highest priority when coding.

</comment><comment><USER3> I can share much of the thoughts regarding RubyMine (a Ruby IDE by JetBrains). While it is not the best text editor out there (I used to use Emacs for Ruby stuff), the IDE features are great and (for me) outweight some of the niceties that Emacs or Your Favourite Text Editor has. Symbol navigation works across libraries and the graphical debugger is great. Autocompletion could be better, but I understand how the dynamic nature of Ruby (and especially Rails, which uses a lot of metaprogramming magic to do its thing) makes it sometimes hard to do 100% accurately.

(I'm not affiliated with JetBrains, just a happy customer)

<comment><USER4> In the same vein, I've been very happy with AppCode, the Objective-C IDE from JetBrains. Its refactoring, templates and code generators are a great time saver. The vim emulation sometimes falls short compared to vim (missing Ctrl-N autocompletion and surrounds very much), but allows me to edit quite efficiently nonetheless, while having a comptetent autocompletion engine. (Also just a happy customer)

</comment></comment><comment><USER5> i'm a big fan of jetbrains, but this is a poorly written article.

> Here is a poignant example of Vim being overloaded.

i don't see how this is any different from opening every toolbar window in PyCharm and cluttering the interface.

> Nothing can replace Vim, but IdeaVim feels closer than any other editor's > attempts

emacs evil does the best emulation. IdeaVim fails at two of the most important emulation tasks: escape and undo.

i used webstorm for a while to do javascript/html, but once i got proficient with vim it wasn't even close. just like how people are going crazy with livereload and how it makes development awesome, that's how i feel with using vim. it does what i tell it to do NOW, not 3 seconds from now.

</comment><comment><USER6> Vim is a vi clone with a massive number of improvements and extensions. The title should have read:

Vim as a Python IDE or Python ID with some vi stuff added

Because, I don't love vim for hjkl and "some" ex commands.

</comment><comment><USER7> Im a vim nutball - and i now swear by pycharm + ideavim. I had been using plain vim as my python editor for a long time - and still use it for remote editing and on the fly fixes; That being said, I tried out pycharm with the ideavim about three months ago and it has improved my productivity and the quality of my code base. Pycharm brought several things together: excellent refactoring capabilities, visual step through debugging with realtime pause/breakpoint edits and gevent support, brilliant code and library navigation, code inspection, selective pep compliant formatting that's vcs friendly, vcs integration (though I still prefer command line hg/git + vimdiff), autocompletion that's doesn't need to be configured manually, regex search replace that's actually better than <,>s/a/b/, fast switching between virtual envs, recognition and maintenance of requirements.txt files, support for multiple vcs flavors, and automatic and frequent detection of remote changes.

Ideavim Is not vim. But it does support enough vi features for me to work with extreme productivity. If there were a couple of things that I have to flag as killer fails, it's the poor support for change lists and vsplit/split. Navigating backwards and forwards through changes doesn't work very well in ideavim - there are workaround, but nothing so primal as g[;,]. Other than that I don't find myself missing all that much - the hybrid of core vi features with IntelliJ features more than makes up for the missing vim features - I could never go back.

</comment><comment><USER8> My personal favourite IDE for Python is WingIDE...the introspection, code completion and debugger are very impressive (step through Django templates in the debugger!).

I recently switched to editing in VIM and using jedi-vim & a few other plugins to get the same Python experience that WingIDE delivers. My conundrum is that I absolutely fell in love with vim (this was my third or 4th go round with vim fwiw) as a text editor but the Python experience can't touch Wing. Wing has a vi mode, but it is not even close to being an actual vim editor. Now I find myself constantly flip-flopping between Wing & vim and finding both slightly unsatisfactory.

I've tried JetBrains, but prefer Wing as it seems _smaller_ and easier to configure. I don't have enough experience with IdeaVim but I'm almost certain it won't deliver a proper vim experience (comments by mmahemoff seem to back this up).

I think I will probably settle on vim and live with the reduced Python integration...and possibly switch back to Wing when using a big unfamiliar library...The introspection is a huge help when exploring something like wxPython or QT.

<comment><USER9> I'm currently looking to adapt vim for Python development. What are the other plugins that you use or would you possibly even share your .vimrc?

<comment><USER8> .vimrc isn't available to me right now, but off the top of my head the ones I use the most are CtrlP, Flake8, supertab, jedi-vim, surround, UltiSnips and solarized color scheme.

</comment></comment></comment><comment><USER10> Really, commercial software shitting over opensource alternatives is bad taste.

<comment><USER11> This article really removed some of my enthusiasm for Jetbrains products, even though I like them a lot.

It's incredibly ignorant and blatantly false to anyone knowledgeable about both.

As an example, I don't know how the author could claim that IDEAVim is comparable to the emulation either EVIL or ViEmu has, and that claim would not be so bold if IDEAVim was not a facsimile of even VI.

And using Python as an example to use in a lie is not very smart as it is one of the better supported languages in VIM for those trying to emulate an IDE's features to an extent.

It's not as though Jetbrains is trying to sell itself as a VIM replacement, that angle is nonsensical as one is an IDE and VIM's quite antagonistic to merging non-text editing features into the defaults.

Plus, lets assume the author's claims are true.

The author claims VIM is horrible, but then concludes by championing what the author just finished deriding as something PyCharm is a paragon of (VIM's design), what?

The article is incredibly distasteful and tries to sell a lie to an incredibly technical audience deft at parsing nuanced information that is much more knowledgeable about the domain than the author portrays.

There is no reason for Jetbrains to promote such base trash instead of continuing to stand on its own merits, which it has been doing well so far.

I hope Jetbrains has the integrity to at least apologize for the blatant stupidity on display in the article soon as it is horrible in all facets and very insulting.

</comment></comment><comment><USER12> Currently using eclipse with pydev and frustrated by the lack of tooling and general understanding of my code by the IDE (mainly due to python's dynamic nature of course, but still). Would anyone here knows a better alternative ?

PS : i'm on mac

<comment><USER13> Erm. PyCharm?

</comment></comment><comment><USER14> a lot of the features mentioned in the post are available in vim plugins. not only that, but</comment>


Typed Lisp, a Primer (2019) - <AUTHOR> https://alhassy.github.io/TypedLisp.html <comment><USER2> It's a great article. Related, for Common Lisp: [https://lispcookbook.github.io/cl- cookbook/type.html](https://lispcookbook.github.io/cl-cookbook/type.html)

and also:

\- [https://medium.com/@MartinCracauer/static-type-checking- in-t...](https://medium.com/@MartinCracauer/static-type-checking-in-the- programmable-programming-language-lisp-79bb79eb068a) (by an author of the CLASP implementation, C++ & LLVM for CL)

\- [https://github.com/stylewarning/coalton](https://github.com/stylewarning/coalton) \- a library (pre-alpha): adding Hindley-Milner type checking to Common Lisp which allows for gradual adoption, in the same way Typed Racket or Hack allows for. It is as an embedded DSL in Lisp that resembles Standard ML or OCaml, but lets you seamlessly interoperate with non-statically-typed Lisp code (and vice versa).

</comment><comment><USER3> Clojure's take on types is not so much that types are bad at micro scale, it's that focusing on proving referential transparency above all else leads to cultural problems at the macro scale. For example, the Datomic Peer API is the most elegant and ergonomic database API I've ever seen. Queries compose as functions under the illusion that the database is a local data structure and this results in a beautiful information model. But if you tried to put IO types on Datomic you find that it spews IO everywhere. And yet it works incredibly well with good enough performance for a wide band of applications! I think you don't find stuff like that in Pure FP ecosystems because those communities coordinate under principles of RT and algebra, and are thus unable to consider a solution space rooted in a different set of principles.

<comment><USER4> > But if you tried to put IO types on Datomic you find that it spews IO > everywhere.

So you put it in a monad and get on with your life? It's like one or two extra characters on your operators just to mark out where you're doing effect composition, and the benefit is that you can immediately see where all the effects are happening. Code is read more than it's written, so it's a really good tradeoff.

> And yet it works incredibly well with good enough performance for a wide > band of applications!

How big is it, and how many people work on it? IME not tracking effects works great as long as everyone working on the codebase can keep the whole thing in their head. But you hit a wall (for me it's about 20kloc - I'm sure smarter people can push it a bit further, but everyone will have a limit eventually) once you can no longer reason about how one part affects every other part, and at that point a little helping hand from the compiler helps a lot.

<comment><USER3> The closest thing I can think of from the pure FP community that makes queries compose in a monad is Scala Slick, which adds an extraordinary amount of complexity to compose queries in exactly the wrong way. The whole FP community's thesis seems to be "take adderall and follow the math" and that thesis leads to Slick, not Datomic. (Both are early 2010s era so i think this is a fair comparison)

<comment><USER4> Slick is for querying traditional SQL RDBMSes, so it has to deal with a massive impedance mismatch compared to a greenfield project. I'd look at something like Facebook's Haxl (for querying GraphQL) for a fairer comparison IMO.

</comment></comment></comment></comment><comment><USER5> After trying Typed Clojure, liking it, but giving it up because of Clojure's GPL-incompatible license, I got interested in Kawa Scheme because it has some rudimentary form of type checking. For example, this produces warnings:

      (define (f1 x::String y::String) (x:concat y))
      (define (f2) (f1 3 3))

      ;; /dev/tty:3:19: warning - type integer is incompatible with required type java.lang.String
      ;; /dev/tty:3:21: warning - type integer is incompatible with required type java.lang.String
      ;; /dev/tty:3:15: warning - cannot convert literal (of type gnu.math.IntNum) to Type java.lang.String
      ;; /dev/tty:3:15: warning - cannot convert literal (of type gnu.math.IntNum) to Type java.lang.String

Unfortunately it does not support fully static type checking nor generics, otherwise it would be my favorite scripting language hands down.

As for type checking Elisp, Elsa[1] seems an interesting project and I hope it becomes a stable option. On the other hand I wonder if in future type checking could also come from gccemacs[2], since one of the "long-term improvements" may be "better compile time warning and errors relying on the propagation engine".

[1] [https://github.com/emacs-elsa/Elsa](https://github.com/emacs-elsa/Elsa) [2] [https://akrl.sdf.org/gccemacs.html](https://akrl.sdf.org/gccemacs.html)

Edit: grammar.

<comment><USER6> Typed Racket tends to work pretty well, and you can gradually add types to dynamic code. Probably the most mature type system of any Lisp.

And if you feel like types are too constraining for a part of your code, you can just leave them out. You get the best of both worlds!

<comment><USER7> I was really excited when I started using racket that I could switch to static typing when I wanted it. However after trying out contract's, I must say I'm quite a fan of them as an alternative. Sure, you lose out on static, compile time checking, but honestly, I haven't missed it. And it's _even more_ seamlessly integrated into un-contracted code. You can express more interesting things and complex relationships between parameters using the ->i contract than any type system I know of will allow. There's some limitations, but between it and unit testing, I've been having a blast.

<comment><USER6> Contracts incur absolutely massive performance penalties. Sparingly used, they can provide value though.

There's no reason why you can't have types and contracts though. I personally can't live without compile time guarantees.

<comment><USER8> I've tried racket/typed before and my knowledge or experience with it might be outdated, but sometimes I just could not get it to agree with my code. I fix one typing warning or thing it cannot infer and another would pop up. I fix the other, then a third pops up. I try to fix the third one, but realize I cannot and need to go back to the original state. When such things do not happen, it is very cool though. The code behing typed racket for me seems so mind bogglingly complex, I did not dare to investigate further. It is a language composed of macros, which use rackets macrology stuff, which is already more complex than other Schemes'. That language can be used to design any type system as far as I read about it.

With my typing trouble I should have come to the user list and asked, but I dId not, frustrated and thinking I was too stupid to get it ^^'

I did once at least see a question on the mailing list, where the answer was, that typed racket could not do it, as in infer types, so it might not be perfect yet, or perhaps it did improve since then.

I wish more Schemes could just copy the typed part of typed racket, using that macro language, as in theory they should be able to represent it, but I guess the devil is in the detail and slightly different workings of macro facilities.

<comment><USER6> Racket has a much more advanced macro system than scheme's traditional syntax- case.

<comment><USER8> Yes, it certainly has, but I think it's still based on that traditional syntax-case stuff. So in theory other Schemes could perhaps copy it, if anyone can get all the macrology behind it. Also in theory it should be possible to express all the advanced Racket stuff in syntax-case.

Do you think it is not possible to express these things in syntax-case? And if so, why?

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> CMUCL, and I assume SBCL by extension, has a rich type inference system[1] that I wish were more widely known.

[1] [https://pmsf.eu/pub/cmucl/doc/cmu-user- old/compiler.html#toc...](https://pmsf.eu/pub/cmucl/doc/cmu-user- old/compiler.html#toc125)

</comment><comment><USER10> That reminds me, PG wrote that "static typing seems to preclude true macros" in [http://www.paulgraham.com/hundred.html](http://www.paulgraham.com/hundred.html) despite it being obviously incorrect.

</comment><comment><USER11> This is a good article but, the author doesn't show the limitations of type systems. If our world is small enough types can be very useful. There are many situations where we want to work in a small world.

>type's have always been there

I've seen this argument before and, I disagree with this statement as presented. The implication is that there is a type system underlying a language's semantics. But, really that's not true. It's more correct to say that objects have always been there.</comment>


Htmlshell - generate HTML skeletons - <AUTHOR> http://htmlshell.com/

<comment><USER2> Please don't include jQuery or Prototype using the URLs shown there, because they are only cached for one hour. Use a full-version URL.

</comment><comment><USER3> It's interesting. It would be helpful to me if it included a set of simple templates for different basic css layouts.

e.g. box centered in the center of the screen, three column fixed, two column flexible, etc.

here's a page with a whole listing of example css layouts. <http://www.maxdesign.com.au/articles/css-layouts/>

</comment><comment><USER4> Just what I need to make a little one-off JavaScript app.

To be more DRY, shouldn't the "Autorun JavaScript" make use of selected JavaScript libraries (i.e. jQuery if possible)?

<comment><USER5> I agree.

Moreover, html5boilerplate recommends NOT to include the /1/ query: [http://html5boilerplate.com/html5boilerplate- site/built/en_U...](http://html5boilerplate.com/html5boilerplate- site/built/en_US/docs/html/#the-javascript)

<comment><USER6> Actually what would really be neat is if it uses an included library if one is linked (e.g. jQuery $(function(){...});) and the code shown wrapped in an anonymous function otherwise (function(){...})();

</comment></comment></comment><comment><USER7> The 'autorun Javascript' at the bottom would be better of in a directly run anonymous function to avoid polluting the global scope with an 'autorun' function. Also, the 'On page loaded' example is not really needed. Any Javascript included at the very last in the page will run automatically on 'page load'.

<comment><USER8> OP is not the creator of the site. You can email him here (from contact link at bottom of page): firstname.lastname@example.com

</comment></comment><comment><USER9> Why do so many people still use redundant HTML tags?

The opening and closing body and head tags aren't needed, nether is the closing html tag. It doesn't make that much difference to the page as a whole but it adds another level of indenting to your code and makes it more complicated than it needs to be.

<comment><USER10> The president of the Federation in Star Trek VI said it best:

"Let us redefine progress to mean that just because we can do a thing, it does not necessarily mean we must do that thing."

Other than the initial level of indenting, which is basically a non-issue for most people I suspect, there just isn't any reason to omit tags like this.

At the same time, they make the markup clearer, and help a reader quickly delineate between two important sections of the document. Therefore, since they provide at least a very small positive benefit, it is perfectly reasonable, IMHO, to include them.

<comment><USER6> I'm not sure I agree (I too did not know they weren't required any more).

We frequently see things like JavaScript pulled in at the bottom of documents -- the head and body long since stopped having functional impacts, and all they seem to do is make you feel guilty about doing things it seems it's not only pragmatic but perfectly OK to do now.

I guess omitting the outermost HTML tags would disturb me slightly if one wants to keep XML-ish. But then it's always bugged me that XML kind of assumes the "file" has no semantic significance.

</comment></comment></comment><comment><USER11> Would love to see optional inclusion of the following: \- Bootstrap (1,2) \- jQuery UI \- YUI \- skeleton framework \- facebook meta tags \- viewport toggling \- foundation framework \- google analytics code (minus acct. #)

</comment><comment><USER12> Remember to have a backup for the jQuery googleapis call, you need to have this right after it: <script>window.jQuery || document.write('<script src="js/libs/jquery.x.js"></script>')</script>

<comment><USER13> Inserting DOM elements via document.write will kill the performance of your site. Don't do it.

</comment></comment><comment><USER14> What about shiv or boilerplate?</comment>


Y Combinator: Dinner, Advice & Comaraderie - The Airbnb Blog - <AUTHOR> http://blog.airbnb.com/y-combinator-dinner-advice-and-comaraderie <comment><USER2> In the photo it looks like our classmates from Foodoro, Adioso, Wattvision, Echodio, Jobpic, and a dating site.</comment>


Belgium and the Netherlands Swap Land, and Remain Friends - <AUTHOR> https://www.nytimes.com/2016/11/28/world/europe/belgium-netherlands-land-dispute.html <comment><USER2> India and Bangladesh have done something similar in 2015 and have remained on good terms. [0]

 _India received 51 Bangladeshi enclaves (covering 7,110 acres (2,880 ha)) in the Indian mainland, while Bangladesh received 111 Indian enclaves (covering 17,160 acres (6,940 ha)) in the Bangladeshi mainland_

[0] [https://en.m.wikipedia.org/wiki/India%E2%80%93Bangladesh_enc...](https://en.m.wikipedia.org/wiki/India%E2%80%93Bangladesh_enclaves)

</comment><comment><USER3> Now they should fix this one. [https://en.wikipedia.org/wiki/Baarle- Nassau](https://en.wikipedia.org/wiki/Baarle-Nassau) Although it's funny

<comment><USER4> That's harder to fix, because there's actual people living there. Also, I suspect the people living there are used to it, like it this way, and it might even be good for tourism. That's a lot to give up.

</comment></comment><comment><USER5> There should a 2016 in the title. I remember it being discussed here at the time.

</comment><comment><USER6> Previous discussion in 2016: [https://news.ycombinator.com/item?id=13065601](https://news.ycombinator.com/item?id=13065601)

</comment><comment><USER7> Bit strange I have to read about this on nytimes via hn, it wasn't even in the 20:00 news in NL?

<comment><USER8> It's from November 2016.

<comment><USER7> Hmm cannot remember anything from then either; now it's a bit late to say I want to reconsider the friendship :-)</comment></comment></comment>


Why Your Startup Should Be Open Source by Peer.fm (formerly Napster.fm) - <AUTHOR> http://citizentekk.com/2013/05/01/why-your-startup-should-be-open-source-by-peer-fm-formerly-napster-fm/

<comment><USER2> As the founder of an Open Source Startup, I absolutely support startups going the open source route. But, FWIW, I will add that this:

 _Releasing your software under an open source license will quickly expand your developer team._

is not necessarily true. Whether or not other developers jump in depends on a lot of factors, and it's entirely possible to release something as Open Source and get no pull requests or other contributions at all.

The reason I know this, is because I'm there. Our Enterprise Social Network - Quoddy[1] - is Open Source, licensed under a liberal license (ALv2) and is on GitHub, and has been for some time, and we've never gotten a pull request. Now to be fair, some guys did fork it and make some changes to support MySQL, in order to support some academic research they were doing. But we never got a pull request from them, so we'd have to go dig through their fork and sift through it to figure out what to bring over.

Now, our project might not have generated much interest from other hackers for a lot of reasons... it's a niche area (enterprise social networks), is written in Groovy (which is popular, but nowhere near _as_ popular as some other languages), and we haven't really done _that_ much to market the project. But that's kinda the point - going OSS _can_ result in lots of outside developers jumping in to contribute, but it by no means guarantees that they will.

[1]: <https://github.com/fogbeam/Quoddy>

<comment><USER3> Quoddy seems to be an addon to Grails, which is a self-contained ecosystem. Despite the claims otherwise, Grϕϕvy has no real uptake outside Grails, only sporadic use. And Grails may be about to switch to vert.x [2], a polyglot (i.e. JavaScript, CoffeeScript, Ruby, Python, Grϕϕvy, Java) framework, which would make Grϕϕvy even more irrelevant.

[2]: [http://grails.io/post/48599814766/more-on-where-next-for- gra...](http://grails.io/post/48599814766/more-on-where-next-for-grails)

</comment></comment><comment><USER4> Reading away and then BAM, popup video from ripplin. Check the bottom of the page's source:

<a href="<http://ukpaydayloansweb.co.uk> title="UK Payday Loans">
UK Payday Loans
<a href="<http://g4y5.com/> title="gay social networking">
gay social networking
<a href="<http://www.youtube.com/watch?v=Bm8CoHCNTPc> title="Adult Affiliate">
Adult Affiliate
<a href="<http://www.youtube.com/watch?v=ArchPNYnlyY> title="free iphone 5">
free iphone 5
<a href="<http://www.youtube.com/watch?v=Y8N_qnE0gLo> title="option bot">
option bot
<a href="<http://www.youtube.com/watch?v=pyvLVxvRhaQ> title="UK Payday Loans">
UK Payday Loans
<a href="<http://streamwebsite.com/> title="Stream Website">
Stream Website
<a href="<http://www.youtube.com/watch?v=kXXoYrIpuZc> title="what is rippln">
what is rippln
<a href="<http://www.youtube.com/watch?v=HswLeDtB2oI> title="rippln how it works">
rippln how it works

Ummmm no thanks.

</comment><comment><USER5> I saw when this was released. Will be keeping a close eye. Right now, I'm really enjoying the service. Wondering what YouTube will do - may not be in their best interest as they found a whole new application for the existing data/music.</comment>


Quare FreeBSD? - <AUTHOR> https://vermaden.wordpress.com/2020/09/07/quare-freebsd/ <comment><USER2> Really good article. I used FreeBSD heavily in the 6.0 days (I ran a custom NAS and some internet servers) but switched away because it was difficult to upgrade. But I'm tempted now to give it another look.</comment>


What Is Ethereum? - <AUTHOR> http://whatthefuckisethereum.com/ <comment><USER2> There's one point in particular that took me a while to grasp: while you can write code that runs on the Ethereum network, every single node has to process that code.

So if, for example, you had a big 3d animation sequence that you wanted to have rendered, you would not just send that code off to the network to be processed. You would have to pay to have every single person on the network process that job for you, and it would be so big the network wouldn't even accept it. Rather, you would create a simple contract that says "if you render this animation for me and prove that you did it right, I'll pay you X amount of Ether". Someone would take the job and the Ethereum network would process your contract and handle the payment. You would end up paying that person to do work for you, and you'd pay the network (using something called gas) to process the contract.

You could use Ethereum to create all kinds of interesting contracts for financial purposes, voting systems, insurance, or whatever else. But it's not some giant compute cluster that will run some big program for you.

<comment><USER3> I might be somewhat biased on this, but I strongly prefer database metaphor over computing metaphor.

Every blockchain is essentially a shared database. E.g. Bitcoin is a database which keeps track of address balances (as a first approximation) and enforces particular authorization rules. It's a fixed-functionality blockchain.

On the other hand, Ethereum can serve as an arbitrary, user-defined database. Ethereum smart contracts are essentially like stored procedures in SQL databases -- they can be used to enforce arbitrary consistency rules.

And the reason why transactions are quite expensive is that you're paying to update everyone's database. You can modify things locally for free, but if you need everyone to see your information, you gotta pay for it.

And computation is there just for the sake of enforcing arbitrary constraints.

<comment><USER4> Interesting. Can I ask for a description of the Etherium database from the perspective of someone shopping databases? Paradigms, features, transactions, distributed consensus, etc.

<comment><USER3> On a low level it consists of multiple key-value stores (one store per contract). Keys and values are 256-bit integers (or 32-byte byte strings).

You never work with it directly, instead, you deploy a contract, which is sort of a collection of stored procedures. On the low level contracts are executed as imperative bytecode with special opcodes for reading/writing data to KV store.

There are also high-level languages which compile to this bytecode. Particularly, Solidity lets you to develop contracts using object-oriented metaphor: contract is an object, its store is accessible via object's fields. Besides primitive types, it supports types like structs, arrays and associative arrays, which can be nested. Compiler takes care of mapping field access to raw key-value store operations, particularly, it relies on cryptographic hash functions for layout mapping instead of deterministic allocation.

Contracts can also call each other, there is an opcode for it. Calls are done synchronously, so it looks exactly like OOP.

Since this database exists in multi-user environment, access control is necessary. The system identifies users using cryptographic signatures and exposes this information to contracts via `msg.sender` field. Contracts can use it to implement custom authorization policies.

The database is transactional, of course: a user-submitted transaction is either executed in its entirety (incl. all nested calls) or fails with all side-effects reversed).

Transactions are executed serially, one at time. So high performance is not a feature of the system, it is more like "high security".

Reading data can be done via "stored procedures" (well, I think technically you can read raw data from key-value store, if you want to). Also there is a separate "event log" mechanisms: contracts can generate custom event logs, which can be later read externally.

Distributed consensus: Each node has a complete copy of the database, so adding more nodes doesn't increase scalability. Currently Ethereum uses proof- of-work consensus. That means that any (mining) node can propose a new block of transactions to be executed, and eventually they converge to a single chain. So it's stochastic.

There are also "private Ethereum" systems which let you to use different consensus mechanisms. Typically they have Byzantine Fault Tolerant consensus, likely inspired by PBFT. It's kinda like Paxos but with more digital signatures.

</comment></comment></comment></comment><comment><USER5> This doesn't seem to do it for me. The multiple explanations it offers are all either:

1) Extremely vague and handwavy, or

2) Links to extremely long documents.

Neither one is an explanation, something that hits the key points and gives you enough to know what to ask to get greater detail.

Edit: toned down criticism.

<comment><USER6> Be my guest: [http://github.com/Breefield/whatthefuckisethereum](http://github.com/Breefield/whatthefuckisethereum) It's supposed to be a combination of layman information, reference material, and humor, I agree some of the content was rushed.

<comment><USER5> As soon as I understand ethereum, I will!

<comment><USER6> Shoot! Explainer site missed the target. I wrote the "average person" page to be quite high level. Unfortunately the "nerdy" page became a little too nerdy.

I should work on an "I'm a software developer who wants an intermediate technical understanding" or something like this.

<comment><USER7> Me and all my coworkers are in this boat and would greatly appreciate a "I'm a software developer who wants an intermediate technical understanding" page!

</comment></comment></comment></comment></comment><comment><USER8> Few weeks ago I decided to spend a weekend to try to understand Ethereum. I found the whitepaper to be pretty instructive (it even helped me cement my understanding of bitcoin). Here is an annotated version of the whitepaper by vitalik:

[http://fermatslibrary.com/s/ethereum-a-next-generation- smart...](http://fermatslibrary.com/s/ethereum-a-next-generation-smart- contract-and-decentralized-application-platform)

<comment><USER9> Interesting;

The document mentions creating a crop-insurance application that would depend on a weather feed.

The problem is if the weather feed isn't something that's uniformly secureable the result could be bad given that the insurance application would take action automatically and no appeal to any higher authority concerning the fraud would be possible - without a "fork" as happened earlier. Hack an insecure feed, an insecure site or whatever and viola, free money.

And this seems like a problem any interface with the "real world" would face. The idea of automatically occurring, no-appeal financial transactions _sounds_ but I would claim it's always going to be problematic - only a fool or a crook would put their money in this kind of system and the crook only puts in enough money to remove the money of the fool.

The ideal of say, money, is it belongs to you, where you is a broad but understandable concept. Something that belong to "whoever has X, Y, Z pieces of information about you" may sound great until someone beside you gets that information _and there is no recourse_. Indeed, the person who had the information "did nothing wrong" if the account really, really did belong to "whoever has this information" rather than belonging to you.

<comment><USER10> This to me is one of the fundamental problems (or challenges) of smart contracts - they remove humans and human judgment from the core, but they just push it to the edges.

You still end up trusting a human - an "oracle". You trust the weather feed, or you trust some exchange to give you the accurate price of some other asset. If that oracle is mistaken (bug, intentional misinformation), the smart contract can be manipulated.

<comment><USER11> This is a significant challenge for sure, at least with Ethereum there's no way around needing an external account (centralization) to feed data into the blockchain.

However, I know of at least 1 promising project on Ethereum (Augur) that provides decentralized oracles, and you can trust these oracles due to some clever game theorish mechanics.

The gist is randomized Reporters submit real-world information to the blockchain and earn a fee for their service. Reporters purchased a cryptoasset to have this priviledge, and if a certain Reporter submits information in conflict with a majority of other reporters (e.g. they lied) then they lose a portion of their cryptoasset giving them incentive to play by the rules and get paid for it.

And even further, if majority of Reporters report dishonestly then people will not use the Oracle service, the Reporters will not be able to earn fees, and the cryptoassets they purchased to allow to be reporters become worthless.

<comment><USER12> > Reporters purchased a cryptoasset to have this priviledge, and if a certain > Reporter submits information in conflict with a majority of other reporters > (e.g. they lied) then they lose a portion of their cryptoasset giving them > incentive to play by the rules and get paid for it.

To be precise: it gives them incentive to submit the same information as majority of other Reporters. This is a huge difference.

<comment><USER13> This seems to be a massive flaw in the gambling markets that they propose. For example, let's say Augur (or any number of competitors) host a market on a football match, where team A are supremely better than team B. The odds on A will be extremely short, and there will be far far more people backing team A than team B.

Now, imagine that team B somehow win the match. How can the system prevent the overwhelming majority of team A backers from submitting a fake result claiming that their team won? They will vastly outnumber the people backing team B, and also outnumber any of the casual observers who might also contribute to the results. So the market will get settled as if team A won, thanks to the 'wisdom of the crowd'. The minority backers will be robbed.

<comment><USER9> Indeed, not only do you have a problem with corrupt backers of a particular view, you have a problem with systematic slipshodness. A whole raft of reporters would have an incentive to report "what you would expect" for any given outcome since that actually is what happens most of the time. So even if reporters can be separated from outcome bettors somehow, outcome bettors wind- up with an incentive to be on "what people expect will happen".

In a lot of ways, it seems like you could create something like a theory that it impossible to create a system that distinguishes "real world input" from "noise that I get from outside" without that system having a model of said real world.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Ethereum is very simple in essence: it's a Turing-complete version of Bitcoin.

The way you transfer a bitcoin from one person to another is by creating a Bitcoin transaction that contains an input script that fulfills an in- blockchain output script with which a number of bitcoins are associated. The output script may say " _provide a public key that hashes to <some_hash> and a signature, over a transaction (which sends the bitcoins to a new output script) that redeems this output, that verifies against this public key_".

Bitcoins script language -- conditions be fulfilled to transfer tokens associated with one output script to a new output script -- is not Turing- complete, which means it's limited in how complex a condition can be set up for redemption. Ethereum's script language _is_ Turing complete, allowing arbitrarily complex conditions for fulfilling an output script (which allows you to transfer coins/tokens from that output script to a new one).

<comment><USER15> Worth adding perhaps that Bitcoin is intentionally not Turing complete, as the complexity opens up a very big space for vulnerabilities. And indeed, we see a lot of those in ethereum contacts.

<comment><USER14> The DAO failed because of a lack of strong typing in the contract language, not because of Turing completeness.

The main problem with a Turing-complete contract language is that it becomes impossible to statically verify runtime properties, so a node can't know how long it will take to verify a transaction it receives. This opens up for denial-of-service attacks, e.g. embedding a transaction with an infinite loop in a block in the blockchain.

<comment><USER16> That's true theoretically and your argument still stands for a lot of cases.

However for practical purposes nodes only compute up to a certain amount of instructions. This is known as the "gas limit". Additionally it costs Ether to get them to run code so any DOS approached in this way is prohibitively expensive.

</comment></comment></comment></comment><comment><USER17> Nice thread but the issue I always have with all discussions around cryptocurrencies is:

I never know if the person who just worshipped or criticized a specific currency has a vested interest.

Somebody who sits on billions of ETH will write totally different tham someboy who is shorting/margin trading ETH.

<comment><USER11> A good litmus test is the level of technical depth of discussion, it's very easy to discuss hypothetical achievements at a high-level of any cryptoasset, but to be able to get into the details demonstrates knowledge beyond any regular trader as well as provides possibly objective reasons to be argued with.

<comment><USER17> Good point. There is one guy in he thread who doubts that ETH will scale. He stays quite meta but sounds credible because he gives one or two good reasons. Still it's hard to judge if it's just a claim or is it substantial, is it crucial for the success anyway?

This whole cryptothing feels like gambling, 'put all your money on red, red will win..'

<comment><USER15> The state of the art for theoretical blockchains is that, to maintain security, you need every single node to process every single transaction. No proposed solution to fix this can maintain anywhere near the same level of security, and while we are making progress on that issue, I think it's still pretty far away.

</comment></comment></comment></comment><comment><USER18> A framework for creating ponzis

<comment><USER10> I'm sure you're only partly joking, but sadly it does seem to be one of the biggest first uses. Oh and lotteries - those are popular.

On the other hand, people will continue to run ponzi schemes as long as there are greedy/ignorant people to attract, so it might as well be done all visibly. At least then the guy running the ponzi can't just tell everyone "sorry, feds raided the bank, all the money is gone" when he actually just moved it offshore.

<comment><USER19> Instead they can just go "sorry, my site / wallet was hacked, all the money is gone"

</comment></comment></comment><comment><USER20> Are we at the "mania" stage of cryptocurrency interest yet?

<comment><USER21> Not until Nicki Minaj or Drake appear in a music video with a bitcoin necklace...

<comment><USER22> Certainly makes it easy to have a high-density, high-value object - much more dense than casino chips. Put the only copy of a wallet with tons of BTC on a microSD. Fun marketing gimmick, too. Put $100 worth on a bunch of micro SDs, spray 'em gold, toss em out at concerts or stuff.

Would totally get headlines if someone put $1M worth on an SD, then laughed and ate it live on TV and said good luck finding it. Or tossed it out of an airplane, or boat, etc. People show off wealth in all sorts of ways...

<comment><USER21> Ever heard about Casascius coins? Gold + BTC... there are physical coins with 1k BTC (~$2.5M) inside

[https://en.bitcoin.it/wiki/Casascius_physical_bitcoins](https://en.bitcoin.it/wiki/Casascius_physical_bitcoins)

</comment></comment></comment></comment><comment><USER23> What is the best place to have discussions about Ethereum? I tried to follow the Reddit group, but I don't really need all the hype. I just need information and opinions on writing contracts and developing applications that use Ethereum network. I'm also very interested in the psychological side of trading and different trading strategies. No fuzz, just reasonable discussion.

<comment><USER24> For dev, there's /r/ethdev and various channels at [https://gitter.im/ethereum](https://gitter.im/ethereum), along with [https://ethereum.stackexchange.com/](https://ethereum.stackexchange.com/).

There are some attempts at serious trading subreddits, but so far nothing that seems that informative to me.

</comment></comment><comment><USER25> How important is the adoption of Solidity for Ethereum's success?

<comment> 52-6F-62 I've been reading a lot about Ethereum, and I am really interested in blockchain tech -- but I also wonder about this.

I am really curious as to whether it would be possible to develop new languages for the handling of smart contracts, or if it is possible to develop smart contracts (using a library or other resource) with existing, popular languages like c++, python, or javascript. I know web3 is already quite accessible and while I haven't looked at the source, it seems relatively easy to work with. But the core language for smart contracts... I think Eth would benefit from some flexibility on the development end. Or maybe I just don't know enough.

Anyway, I think that would be a big leap.

<comment><USER24> There are several languages that compile to the EVM. Also there's a somewhat speculative project to transition to a restricted version of WASM, which would let languages like C and Rust be compiled into smart contracts on Ethereum.

<comment> 52-6F-62 Interesting. All I knew of previously was Solidity, and it seemed... practical but limited. That said, I haven't done a deep dive yet.

Thanks

</comment></comment></comment></comment><comment><USER26> Ethereum is an awesome idea, but before any practical Ether application booms, it's more like a bubble.

If you're interested in why there's also a token named "Ethereum Classic(ETC)", you can search "DAO" on Google to explore more about why the first largest Ethereum application DAO was failed and why this leads to the hard fork(ETH => ETC, ETH) of Ethereum.

As far as decentralized storage is concerned, there's production-already a blockchain-based product named Sia ([http://sia.tech/](http://sia.tech/) ), but Swarm (which is a similar thing based on Ethereum) is still in very early stage.

</comment><comment><USER27> I'm still confused. Is this anything beyond another opt-in botnet at it's core?

</comment><comment><USER28> What is Ethereum _useful_ for? When would I need it? Why is AWS (et al) not sufficient?

<comment><USER29> well, not specifically ethereum but stuff like siacoin provide cheaper options than AWS and while I personally cannot attest to the performance, they seem to be interesting alternatives.[1]

In the case of siacoin, at face value it seems to be significantly cheaper than AWS or Google Cloud for providing bulk cloud storage.

[1] [http://sia.tech/](http://sia.tech/)

<comment><USER30> Even more exciting for me is IPFS and Filecoin. Seems like this pairing could allow for a truly decentralized Internet. Ycombinator had one of the founders / lead programmers on the podcast in the last few weeks and I highly recommend it!

</comment></comment></comment><comment><USER31> Wow, I actually own some ETH on coinbase and had no idea it was more than just a competing crypto currency.

</comment><comment><USER32> Hats off to attempting to explain a deeply technical topic to a variety of audiences, acknowledging different learner needs. A lot of posters here would probably benefit from taking a humanistic approach to explaining what they do to non-hacker news readers!

</comment><comment><USER33> I don't believe all ICOs are illegal

ICO tokens are digital commodities/assets that are more similar to app credits or in-app mobile purchases than securities.

Unlike with Ethereum apps/dapps, you can't trade traditional app credits/in- app purchases on an exchange but imagine if there were farmville ERC-20 tokens a few years backs, people will buy thousands off speculation alone, it'll be interesting to see how the SEC will regulate this

</comment><comment><USER34> Yo songzme, I have to thank you for throwing this up because as a result, I've since stumbled on 3Blue1Brown and his awesome video on crypto and math in general. You linked his video the same day he posted it, and I couldn't have been happier to find something that explained it in laymen terms so well. I've been meaning to solidify my understanding for friends and family, so thanks for sharing! Cheers mate.

<comment><USER35> Link?

<comment><USER36> [https://www.youtube.com/watch?v=bBC- nXj3Ng4](https://www.youtube.com/watch?v=bBC-nXj3Ng4)

</comment></comment></comment><comment><USER37> I'm being sniffy here, and the technical achievement of Ethereum is considerable, but were I talking about a general contract computing platform, I'd want one where I could demonstrate the assertions the code makes. And that basically means a dependently typed functional programming language. I'd start with Idris, but even that might need strengthening before DAO-style issues were hard to find.

<comment><USER24> Here's a masters thesis by someone who made Idris compile to the Ethereum virtual machine.

[https://publications.lib.chalmers.se/records/fulltext/234939...](https://publications.lib.chalmers.se/records/fulltext/234939/234939.pdf)

<comment><USER37> That's cool (Idris seems to have an infinitely pluggable back end), but it's not the same thing. You can code in a higher-level language, but you can't inspect another program's guarantees and you can't safely use them within your own system.

</comment></comment></comment><comment><USER38> The time estimate listed for an in-depth reading of the Yellow Paper (54 minutes) is... optimistic.

</comment><comment><USER39> Don't need a whole website to tell me it is just a vehicle for fraudulent securities.

</comment><comment><USER40> Ethereum is not immutable centralized and full of bugs

Good luck in the long run

</comment><comment><USER41> Is the content on this website supposed to change based on the target audience selected in the dropdown? If so, it is broken on mobile safari.

</comment><comment><USER42> I know I'll get hate for not commenting on the actual content of this article, but...why is this only taking up 1/3rd of my horizontal screen space? Perhaps all that space could be used to show the images alongside the text?

> here's what we'll talk about: (with links if you want to jump to a specific > section).

Holy smokes, it's got links! Good thing he pointed it out to me since I never could have figured that out by the visual indicators that every web browser adds to links.

</comment><comment><USER43> I love that the article ends in this line:

"Support this website! Send ETH to: 0x1c4d1804AD9d47de0D4209882843998E03E30dF9"

<comment><USER44> I was curious so I checked, actually two persons gave him some food : [https://etherscan.io/address/0x1c4d1804ad9d47de0d42098828439...](https://etherscan.io/address/0x1c4d1804ad9d47de0d4209882843998e03e30df9)

~ 40$

</comment></comment><comment><USER45> Wouldn't whatthefuckisethereum. _edu_ make more sense for an educational site?

<comment><USER46> .edu addresses are restricted to educational institutions in the US afaik.

</comment></comment><comment><USER47> What are people using Ethereum for though.

Outside of trading it between each other based on price speculation, is there a real world thing that isn't a prototype that people are using as part of the smart contract system?

</comment><comment><USER48> An establishment backed control job.

</comment><comment><USER49> The problem with ether isn't the tech of contracts but the implementation of the network. There are very concerning scalability issues that have not only not been addressed, but who's 'plan' for resolution are either untried systems in development (sharding) or have significant architectural issues (proof-of- stake) that very smart people think will never be resolved. I hope they overcome these obstacles, but the jury is still well and truly out.

</comment><comment><USER50> Can anyone help me with a reference for any study that has been published on the status of research for the conditions of successful crypto currency launches?

Or a serious reputable journal reviewing the literature comprehensively?

If I'm unable to find filling for the gaps in the study I seek, I'm inclined to think that I have a good chance of being able to work towards a (sincerely and despite being tempted by the ad rates) non spammy simple site to collate the references, this summer. So if you have any suggestions for the effort I will with about 70% probability undertake, I'd be happy to hear from you as well.

</comment><comment><USER51> The best way to think of ethereum is bitcoin with more flexibility, and its immutability define by owners* tolerance for loss. When vladmir and slock.it lose money they just roll it back. * owners being the slack group with 90% of the mining power. There exists shitcoins with more credibility than ethereum

<comment><USER52> Can we please stop bringing up slock.it and the DAO fork. It was more than a year ago and it's time to move on.

<comment><USER51> Why? It is quite defining. I would judge a bank on how it behaved 12 months ago, or 24 months, or 10 years ago. if(lapsed > months(12)) { forget; } errr no..

</comment></comment></comment><comment><USER53> Another cryptocurrency based scam?

</comment><comment><USER54> Another cryptocurrency? This is becoming a hyper inflation of crypto currencies...

</comment><comment><USER55> Sounds terrible.

</comment><comment><USER21> Ethereum has had a good start being the first mover in smart contracts, but EOS is coming and the value proposition is much more solid...

[https://www.youtube.com/watch?v=MUZWZj1pu94](https://www.youtube.com/watch?v=MUZWZj1pu94)

Blockchain tech is evolving...

<comment><USER56> EOS doesn't currently exist. It makes a lot of strong claims, and has delivered none of them yet.

<comment><USER21> Larimer has delivered them already in his previous projects: BitShares and Steemit. That's more proven track record than what Ethereum had in early 2014, and that didn't stop people from supporting the idea. I for instance have been a strong supporter of Ethereum since day 0, but now I feel EOS (with DPoS and Graphene) is the next step in blockchain tech.

<comment><USER56> Ethereum had no "solid" value proposition in 2014, and EOS doesn't have one now. You're overstating its proven value. We can share our opinions on the respective projects, but that's different from a demonstrable value proposition.

<comment><USER21> You should check the definition of value proposition. [0] Ethereum had one: "a cryptocurrency with a programming language beyond opcodes"

EOS value proposition is: "a platform for building DApps beyond PoW (using DPoS) and industry-ready TPS (with Graphene[1])".

Both DPoS and Graphene are inventions of Larimer. For many this is enough, and that reflects why it's already a top 15 crypto.

[0] [http://www.investopedia.com/terms/v/valueproposition.asp](http://www.investopedia.com/terms/v/valueproposition.asp)

[1] [http://docs.bitshares.org/](http://docs.bitshares.org/)

<comment><USER56> You're saying a vaporware blockchain with unproven claims has a more solid value proposition than Ethereum because its founder created two cryptocurrencies that combined have a market capitalization that equals 4% of Ethereum's.

>Ethereum had one: "a cryptocurrency with a programming language beyond opcodes"

It didn't have one until it had working code.

<comment><USER21> No, I'm saying that I trusted Ethereum would be built when it was a project idea although Vitalik was only a blogger, and that I'm trusting Daniel because hi has even better chances of delivering.

And that is the reason why I bought __in both __crowsdsales. Your call...

<comment><USER56> You can trust EOS all you want, but that doesn't give it a "solid value proposition" that can be demonstrated. I'm simply disputing your choice of words, as it gives a misleading impression in my opinion.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER57> So tired of seeing blockchain, machine learning, and JS in hte news. Things like Ethereum and even Bitcoin are 100% hype, "what if", and are nothing more than dreams.

Last century gave us things like the personal computer, the internet, and so on. What about this one? Fancier webpages? Selfies? Tweets?

All of this blockchain and cryptocurrency and JS hype is tiresome to see. What happened to making real stuff that works and solves real problems?

<comment><USER58> Lots of hype, for sure, but this criticism is too hard for what is still a still nascent frontier technology.

The innovations you listed in "last century"\- PC, internet, etc - both went through their fringe, hobbyists-and-nerds-only phases, during which their future value to society was totally unclear and uncertain.

Only in hindsight are these technologies impacts obvious.

While I couldn't agree more about the fact that there's ridiculous hype and (most annoyingly) greedy speculation in crypto, I for one am hugely excited and optimistic about the potential society-changing implications of the this tech.

</comment></comment><comment><USER59> Can't trust ethereum or bitcoin for the same reason we can't trust the fed and their "quantitive easing": 1\. It's way complicated 2\. It's fiat 3\. Nobody understand who really is in control of its value

<comment><USER60> What's wrong with fiat currency?

<comment><USER59> Is this a serious question

<comment><USER61> Yes. Can you answer it? Assume I'm neither a libertarian nor an anarchist.

<comment><USER62> During the past decade, the Federal Reserve has created 4 trillion dollars out of thin air in an attempt to prop up the economy. The Fed seems hesitant to unwind that as it carries the risk of harming the economy. Fiat money can always be created out of thin air, and it seems to be proving difficult for those in power to resist that temptation.

[https://www.thestreet.com/story/14181100/1/the-fed- normalize...](https://www.thestreet.com/story/14181100/1/the-fed-normalizes- money-printing-marking-the-dollar-s-eventual-demise.html)

<comment><USER27> >During the past decade, the Federal Reserve has created 4 trillion dollars out of thin air in an attempt to prop up the economy.

During the 1840's to 1860's we created billions of dollars out of thin air by mining gold from the ground in California. Fiat currency saves us the digging.

Money is not a static "thing" that definitely exists. Markets need liquidity. QE has provided that liquidity as the vast majority of capital in our society has become locked up by the top 1%. If anything, they could _increase_ the flow of QE because of how low inflation is right now.</comment></comment></comment></comment></comment></comment>


The MegaPenny Project - Visualizing Large Numbers - <AUTHOR> http://www.kokogiak.com/megapenny/default.asp <comment><USER2> So bailout ($5 trillion) is about half of this:

<http://www.kokogiak.com/megapenny/seventeen.asp>

While these are all pennies currently in circulation ($2 billion):

<http://www.kokogiak.com/megapenny/twelve.asp></comment>


Ask HN: Wait for the new I-phone or Nexus? (My Contract is up) - <AUTHOR>

Ask HN: Wait for the new I-phone or Nexus? (My Contract is up) <comment><USER2> Would you rather run the iPhone OS or Android?

I myself would much rather run Android, and I think I'm going to wait 6 months for one with a keyboard with a faster processor than the Droid.

<comment><AUTHOR> I haven't decided which I would love to run: Iphone has a better UI and applications at the moment while Android is the new player in the game. Android does have a lot of catch up to do (ex: Better music player, UI experience), but how can one put faith in Google?

The I-phone hasn't been updated much from a hardware standpoint, therefore, is it worth waiting to see what it looks like in June?

I know I sound like a bad Mashable article.

</comment></comment><comment><USER3> Can you play mp3s on a Nexus? Is it as good as an iPhone? How do you transfer the songs to the phone?

<comment><USER4> Android phones can play mp3s just fine. The built in mp3 player is "not fancy" but it gets the job done just fine. When you connect the phone to your computer via USB, it shows up as an external drive, so you can put songs onto it the same way you would put them onto a "thumb drive."</comment></comment>


Ask HN: Can Freelance be free? - <AUTHOR> I think pretty much everyone here is aware of the nasty things Upwork does. High fees, totalitarian policies, sudden suspensions and just marvellous support.
Essentially, it's highly regulated labor exchange, with centralised authority. They CAN instantly ruin your career, or at least incapacitate it for a long time by just banning you and forbid to create another account. May be they will explain this, may they'll just ignore you. Of course, this is not necessary because they are "evil", but because they are just an instance of totalitarian hypocrisy in the internet. They create bunch of regulations, that make it very easy for scummer-type clients to blackmail you and ruin your profile. Why is it okay for so many people?
Can freelance be unregulated? With clients and freelancers dealing with each other without oversight?I was on both sides: as a freelancer and as a client on upwork. I was kicked off by upwork years ago, when i was just a beginner JS developer, i was dependant on them and it was really hard to keep going on. Since then I worked with many clients and even started my own development shop, which, i think, characterises me as capable and responsible person. Upwork's regulations never helped me. I've proven to support that client explicitly blackmailing me with negative review - they unsuspended my account but didn't delete the review, because it's against their regulations. Well, you know what is happening with profile, once it got 1 star review from the beginning. Since then i dealt with clients without any regulations. It was reasonably easy to spot scammers and avoid dealing with them: you can just do small part of the job, get paid and grow amounts of client-to-freelancer debt gradually along with trust. That was years ago, but still, when i hear again and again what is going on there, i feel sorry for all of the good freelancers who have been damaged by Upwork.
What do you think? Can freelance exist on scale without regulations? <comment><USER2> Yes, it absolutely can be. If you hire a designer, a lawyer, a builder, you probably don't do so via middlemen like Upwork.

That hiring freelancers, freelance developers in particular, often works differently is an outlier, not the norm.

There are various reasons for this but it has something to do with development work being organised and its value being measured as if it were manual assembly line labour, i.e. it's often measured in terms of time spent instead of value created. It also has something to do with freelancers often saying something along the lines of "I'm just a developer. I just want to code.", thereby both shifting responsibility for their work to somebody else and not recognising the true value of their work.

This needs to change. Freelancers need to take responsibility for their work (as in: "I'm not just two hands. I design and create solutions."). Clients on the other hand need to get out of the hourly mindset as well if they want to get real value instead of an anonymous commodity with the constant need for oversight.

</comment><comment><USER3> As a freelancer, the problem with sites like Upwork is that you are relying on a third party to source your work, which is how you make a living. Not only that, but they make it extremely hard / difficult / against the rules to work with the client outside the site. It's such a ridiculous cash grab, I really don't see how so many people think it's worth it.

If you (in general) find yourself over-reliant on Upwork, you should ask yourself _why_ you are relying so much on it, especially when it could be pulled out from under you at any time. Is there a reason you need to source your work on Upwork? Have you tried to find work on your own but failed? Or is the momentum of your years on Upwork causing you to continue? Spend some time identifying your weaknesses that caused you to rely on upwork, and try to remedy them.

<comment><USER4> It's quite interesting that there are countless massive, free job sites and job listing platforms, and yet somehow Upwork is plundering contract workers by taking a cut of the action. They seem like a regressive antique. It'd be equivalent to Monster.com or Dice.com taking a sizable part of my salary if I find a job through them - few would consider such a thing to be reasonable or fair.

I think a more open platform needs to exist to counter Upwork's abusive, greed-oriented approach. It should be job and task listing supported (businesses placing wanted ads for all types of traditional jobs and contract work). Zero fees should be taken out of the pockets of the workers. There are plenty of well-demonstrated examples for how to build successful reputation communities that would enable a superior, anti-Upwork approach.

Whoever does this successfully will easily overtake the Upwork platform, for exactly the same reason Stackoverflow rapidly overtook Experts Exchange. It's kind of strange that Stackoverflow / Stack Exchange hasn't already extended their platform in a way that would put an end to the value proposition of Upwork; it seems like an obvious target for them.

</comment></comment><comment><USER5> Accountability is the reason I use platforms. I know that I could get thrown under the bus, but when everything works as it should, it's not a problem. I am not satisfied with sometimes the high commissions and cut throat competition, but there is at least the safety that I will get my payments. They are in charge in managing the legitimacy of the other user and myself. It seems that the problem arises from the "reputation" points and I think that the best way to solve that is coming up with a new system than an arbitrary 5 star review system

</comment><comment><USER6> Would a person with a significant project hire through middleman websites? Maybe, but it wouldn't be a very smart move on his part, and would also denote some inexperience dealing with professionals and consultants. Finding good clients is not easy, but removing places where there is a higher chance to find bad clients helps.

</comment><comment><USER7> > Can freelance be unregulated? With clients and freelancers dealing with each > other without oversight?

IMO that is the only definition of "freelance". If there is a middleman in the relationship, you're a contractor for an agency, in the case of Upwork one that gives zero fucks about the work being done.

</comment><comment><USER8> Depends on culture. I've been developing technology for customers for some time as a freelancer, without many contracts/regulations etc. Worked fine.

</comment><comment><USER9> I don't use any of those sites and I do freelancing via brokers mainly.

<comment><AUTHOR> can you tell more about this? What exactly do you mean by "brokers"?

<comment><USER2> There are middlemen not unlike recruiters but for freelancers. They serve the same purpose as sites like Upwork but at a smaller scale.

<comment><AUTHOR> How can i find such people?

<comment><USER2> Usually, they find you ;-) I'm only slightly kidding here.

This is a very crowded market and if you can avoid working with them it's probably best to do so (for pretty much the same reasons as is avoiding working with Upwork).

There are a few really good ones but most of them just try to sell developer hours as a commodity.

Where you can find the good ones depends a lot on where you're located. There are freelancer forums (on LinkedIn, for example) where recruiters usually advertise new projects.

<comment><USER9> I found a good one who has contacts with some big companies. Usually the contracts are between 3 months and 1 year. I worked with them on and off since 2006.

But I agree. It's a crowded market. I stopped answering people who contact me on LinkedIn - usually they can't help me.

I would say this is the most effective way for me to get jobs since I don't have a sales department to sell my services to big companies. I kind of out sourced the sales part, you could say.</comment></comment></comment></comment></comment></comment>


EMC buys SourceLabs, operator of open source site Swik.net - <AUTHOR> http://www.techflash.com/venture/SourceLabs_operator_of_open_source_community_Swiknet_sold_to_EMC37015364.html <comment><USER2> I wonder if SourceLabs spoke to any VMware folk and asked how well being owned by EMC was working.</comment>


Car giants need to move fast and break things - <AUTHOR> https://www.economist.com/briefing/2020/04/23/the-worlds-car-giants-need-to-move-fast-and-break-things <comment><USER2> I don't have industry insight, so this is just my view as an opinionated consumer on specifically new car sales:

Everyday consumer cars haven't offered anything interesting to the consumer for nearly 20 years, and I'm not sure what they could possibly offer. For the longest time the branding drive for cars has been about new technology, signaling success and personal branding. But I see a few shifts in society that make these less important:

1\. New Technology is fun, but it's reached a peak of usefulness to the consumer in cars. For the vast majority of people, a car is a utility, and their basic usefulness isn't improving anymore. If you find your near new car isn't meeting your needs, it's a different model, not a new version that you want.

2\. I wonder if the personal image of car ownership isn't being diminished. An awful lot of money to spend on something you don't do much with. For many it's just been assumed that you need a car and that it'll be expensive, so you'll get it financed, which hides the real cost of the car inside weekly expenses. I see that changing, not least because the middle class has less money than they used to.

Just like inflated housing costs, the only reason we've been stomaching the cost of new cars is thanks to easy finance. When you live paycheck to paycheck, it's easy to mask the costs. But when people are getting squeezed, not even that works.

<comment><USER3> > Everyday consumer cars haven't offered anything interesting to the consumer > for nearly 20 years, and I'm not sure what they could possibly offer.

If you look back to the days when cars were less utilitarian and more sentimental, the key difference was that people would modify them. They'd put on bigger wheels and performance parts, cut them up and turn a truck into a camper or add aftermarket features to the interior.

You ever see that show about Count's Customs? People used to do that at home. But basically every car on that show is 1980s or earlier for a reason.

Modern cars are unibody, they don't have a separate frame so you can't put on a different one. Everything is not only done by computers but done by opaque undocumented non-standard computers. You can't so much as replace the entertainment system in your car because it's integrated with the climate controls and everything else.

Some of that (like unibody) is for a reason, but most of it isn't. It doesn't have to be this way.

And when it wasn't was when people actually cared about their cars. That's how you get people to pay you all of these maintenance dollars -- get them to push their cars hard on the track or off-roading or on cross-country road trips but then care enough about them to pay you the money to repair them when they wear out. Get people to love them because they have hundreds of hours into them and brand loyalty means something because all your spare parts and systems knowledge are for Chevys and not Hondas or vice versa.

They all think they want to be Apple but more phones run Android and more servers run Linux and Tesla is already being Apple. Be something else. There are a lot of customers looking for something else and not a lot of competitors providing it.

<comment><USER4> You really can't get around the Unibody when producing more then 50-80k cars.

Trucks of course are the exception as you have to go with body-on-frame and in that case we do see a much larger modding community and a huge after market.

<comment><USER3> Right, but why aren't they publishing RFCs for the APIs their different computers use to talk to each other, and releasing most of their code under a license that says something like "modify or distribute this code however you want and use it on any vehicle you have a license for (which all of ours come with)"?

There should be third party forks of your entertainment system on github or you're doing it wrong.

<comment><USER5> There are a ton of trade secrets in the interesting parts of a car (ECUs) that will basically never be released. But for infotainment, there are competing efforts to standardize on that front but it's slow from what I've observed. Decisions about components + software are made way in advance of the car being made, so softwarey type things are outdated by the time they come out. That is changing though

<comment><USER3> The trade secret argument is silly. As if it really matters if it takes your competitors a month to reverse engineer it from disassembling a binary instead of a week if you publish the source code. You can't mass produce something with a secret in it and expect it to stay a secret.

> Decisions about components + software are made way in advance of the car > being made, so softwarey type things are outdated by the time they come out.

They're doing this wrong.

You have an infotainment system which is basically a PC/tablet built into the dash. It should be completely open. Like you should be able to rip it out and replace it with an actual PC or tablet running entirely third party software and it should still be able to do everything.

Then it should talk to all the other parts of the car over ethernet using published standards, no secret APIs. Not publishing the code for the ECU is silly but that allows them to do it and not have that infect everything else in the car, because its internals can be a black box but all the public interfaces aren't.

Then it doesn't matter how outdated your infotainment system is because anybody can install the latest version after the fact or replace it with an entirely third party one and all you need is a "driver" that translates the API version used by the ECU and other vehicle components into something that infotainment system can work with.

<comment><USER5> You actually can mass produce tons of stuff with trade secrets! A lot of systems aren't easy to access and wouldn't necessarily be debuggable with normal tools, depending on th age of the car. For new cars, they are work on basically building devices with no interface except the communication channel, and to access it you'd have to reverse engineer the protocol, which is not trivial I can assure you.

For infotainment, its not actually as easy as you think. Its definitely rated QM or maybe ASIL-A because it can do things like control climate or on some cars put it into different modes. Failures in these systems might not be catastrophic, but they need to be correct to some degree and failure or poor design, can lead to this

[https://www.google.com/amp/s/www.wired.com/2015/07/hackers-r...](https://www.google.com/amp/s/www.wired.com/2015/07/hackers- remotely-kill-jeep-highway/amp)

Granted, should they have connected everything the way they did? No, but car companies are barely engineering firms, they are just basically assembly firms that contract out all their components except for things like the ECUs. If they don't know how to specify security requirements to a vendor, it won't happen. They are learning though and it takes time.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> Move fast and break things like Boeing tried and failed with the 737 Max ?

That's the danger with software companies being the wealthiest ones in the world, people think that others companies should apply the same recipes and earn more money.

You can move fast with web and mobile apps, if you break something a page didn't load and someone is unable to see number of likes on his last Instagram pic of his dinner, fine, let's redeploy and it should work again.

Even Azure or AWS provide something like 99.99% SLA on their services, imagine if Boeing/Airbus/BMW/Mercedes/etc. had the same level on their products, we would have dozens of airplane crashes per day... (Okay maybe not now during the lockdown).

This culture can't and shouldn't be applied in other domains.

</comment><comment><USER7> This is the stupidest advice i've read in a long time. The economist should be embarrassed by this. When Facebook moves fast and break things the worst case is that a webpage doesn't load. When you are mass producing a vehicle the worst case is that people die. Potentially a lot of people, people who may not even be driving the vehicle. So no, auto makers should absolutely not move fast and break things, unless they want to completely lose any consumer confidence in their product and be on the receiving end of potentially crippling law suits.

</comment><comment><USER8> I cannot help but feel like "move fast and break things" is the last thing we should be advocating companies that make multi-ton metal objects that hurtle themselves around at speeds more than sufficient to kill anyone they run into, and/or the people within them, should be doing.

<comment><USER4> SpaceX is doing it with rockets. So ...

<comment><USER9> SpaceX's "move fast and break things" is entirely unlike the software industry's approach. It's grounded in owning the whole vertical, understanding what's going on at each place in rocket's construction, and relaxing some safety margins _relative to aerospace standards_. They can do that, because their rockets are unmanned, so they can make them work both as launch vehicles and experimental vehicles at the same time. You'll note, however, that they are _not_ careless about range safety, i.e. ensuring the rocket failure at any stage in its mission doesn't hurt people.

</comment></comment></comment><comment><USER10> > implore the chancellor to revive a "cash-for-clunkers" scheme like the one > introduced after the financial crisis.

A modified "Cash for Clunkers" revival sounds pretty smart. My family's driving has plummeted, and now we have an extra car which we never drive. Meanwhile there's (I presume?) increased interest in the car-based gig economy. If someone were to want my 18 year old rust bucket (runs great!), I'd off it for cheap, since the insurance, registration, and its physical form are all deadweight. Then I'd buy a new car once the economy begins to recover. Why not make this dynamic part of the automaker bailout?

<comment><USER11> The car based gig economy doesn't want your 18 year old rust bucket either. The cutoff tends to be closer to 10 years old or newer.

</comment></comment><comment><USER12> speaking as a technician for a midwestern chain of diesel truck shops, nooooo they do not.

>Most carmakers were fitter going into this crisis than the last recession a decade ago.

The article fails to mention that as a term for accepting loans during the last "once in a lifetime" financial crisis, automakers were held by the scruff of their neck and forced to eat their spinach. Pontiac was shuttered because politicians fondly remembered Buick and the Aztek was a design that pissed off basically anyone over 30. Fiat bought Chrysler, and the same mid level managers who were chortling over the theft of the E-Class design during the ripoff partnership with Mercedes were now finishing cafeteria crow pie and packing their desks.

>Credit Suisse, a bank, expects GM and Ford to burn through $10bn and $14bn of cash

Someone needs to check the ford offices for a gas leak, because they brought this entirely on themselves by wiping out automobiles in favour of SUV's and muscle cars. They turned the 'Stang into an electric crossover and got rid of the focus ST to be replaced with the ecosport, the most sterile compromise since Obamacare. Meanwhile GM is stuck trying to figure out what to do with Buick, a car thats remained the automotive equivalent of a knock-off rolex for over forty years. by comparison, Ford dropped their mercury brand in 2011 and so are spared the absolute nightmare of marketing this car without a buyer.

Americans --the majority of them-- want cheap cars that are inexpensive to maintain and reliable to own. full stop. Capitalism says otherwise and auto loans are a 1.1 trillion dollar bubble, with an average lending period of six years. Im frankly shocked no one is talking about an impending collapse of auto lending.

<comment><USER13> There has been plenty of discussion about the auto lending market, it's just overshadowed by far bigger recent problems like housing and unemployment amongst a pandemic.

</comment></comment><comment><USER14> Wouldn't that go against their mission?

</comment><comment><USER15> [https://outline.com/ygSGPU](https://outline.com/ygSGPU)</comment>


Thoughts about the Open Source Tea Party - <AUTHOR> http://blog.martin-graesslin.com/blog/2013/10/thoughts-about-the-open-source-tea-party/

<comment><USER2> "[http://www.twinings.com/int/l2c_perfect_cup.php"](http://www.twinings.com/int/l2c_perfect_cup.php") || "[http://www.rareteacompany.com/recipes/how-to-make-the- perfec...](http://www.rareteacompany.com/recipes/how-to-make-the-perfect-cup- of-tea/")</comment>


Ask HN: what do you hate about Goodreads and how it can be better? - <AUTHOR>

if you use anything better, please mention it too and what you like about it <comment><USER2> It's just generally a cluttery, unfocused website. I attempted to make a replacement but the network effects of Goodreads make it really difficult to compete, and this was just a side project

</comment><comment><USER3> I wished if I can find something better. I get confused when I use it, especially that it feels like it's stuck in 2001 till now. and I hate the auto-friending thing.</comment>


What tech stack does Fathom Analytics use? - <AUTHOR> https://usefathom.com/blog/tech-stack <comment><AUTHOR> Someone from Fathom was on HN a few weeks back saying they were going to announce their new way of dealing with GDPR and ePrivacy without cookies, and I've been watching their blog eagerly waiting on that announcement.

Still no announcement, but I did find this blog article about their tech stack. Thought it was interesting that they use a few different things:

• PHP (a favourite on HN ;)

• Caddy (IME nginx or HAProxy are far more common in production)

• ChipperCI (hadn't even heard of this)</comment>


Ultracapacitor Nanotech Breakthrough Could Boost Storage Capacity and Power Output - <AUTHOR> http://www.treehugger.com/files/2008/09/ultracapacitor-nanotechnology-breakthrough-power-storage.php

<comment><USER2> Power storage and distribution is the limiting factor in _so many things_ that it's not even funny. Best of luck to all the researchers working on finding better ways to deliver power where we need it.

</comment><comment><USER3> I had no idea ultracapacitors were only up to 5% of LION capacity. I thought they were already competitive.

I heard superconductors can be used for energy storage. Assuming we had a room temperature superconductor, what would the power/density on that be? I.e., how would it compare to LION?

</comment><comment><USER4> Isn't this the 4th or 5th super-capacitor story in the last six months?

<comment><USER5> I'd like to know if that reflect fast advancing technology or just good publicity.

<comment><USER6> Well, we will need a new bubble once this one is deflated. The search for candidates is on. Front-runners are: Alterntaive Energy, Clean Tech, Bio Tech.</comment></comment></comment>


Dropbox Says No Intrusions Found, Investigation Continues - <AUTHOR> http://techcrunch.com/2012/07/20/no-news-is-good-news-dropbox-says-no-intrusions-found-investigation-continues/

<comment><USER2> We had the same problem at MacHeist (people got their specific macheist+ prefixes targeted with spam). Turned out it was our email provider iContact who were hacked. We weren't the only ones. They posted a non-committal blog post about "investigating the matter", which then mysteriously disappeared when they upgraded their blogging platform.

The hack made real damage to our reputation (the "software bundle" space has a poor reputation to begin with, and receiving spam confirmed people's expectations), and they wouldn't own up to it. Be careful with which third parties you entrust your users' email addresses with.

<comment><USER3> I use unique addresses, and periodically am on the reporting end of problems like this. Once I started getting the same spam from two unrelated companies at the same time, and they tracked it down to a common email marketing company that was where the actual breach occurred. Another time it turned out emails had been staged in a less secure system in preparation for sending email marketing. So it must be pretty common that a compromise doesn't actually mean the core product or database has been compromised.

For the record, I haven't received any spam to my Dropbox-only email account, which means they probably didn't get the WHOLE user database.

</comment></comment><comment><USER4> Has anyone considered that the LinkedIn hack (6.5+ million accounts, with passwords run through a non-salted SHA-1) could be responsible for much of this?

I remember a lot of people having their Diablo 3 accounts hacked and their items stolen right around that time.

<comment><USER5> This seems possible. People usually use the same email and password for every accounts they create so all the hacker needs to do is to try the username and password on accounts on other sites.

<comment><USER6> The article specifies that many people targeted used emails unique to their dropbox accounts.

</comment></comment></comment><comment><USER7> Must be some 3rd party app that proxies Dropbox services and/or login.

</comment><comment><USER8> For what it's worth, I've been getting these "Euro Dice Exchange" spam messages in Canada as well. I believe the emails are being sent out sorted by domain name, as the email I received was addressed to my both my university e-mail (which I used to sign up for Dropbox) and several other university e-mail addresses.

This is definitely not from the LinkedIn hack. I don't have a LinkedIn account. Combined with the people who were receiving spam at Dropbox-specific emails, I don't see how it could be anything other than Dropbox.

</comment><comment><USER9> Anyone know who's doing the investigation?

</comment><comment><USER10> One of the reasons why user hosted Personal Cloud Storage/Sync services like Tonido ([http://www.tonido.com/blog/index.php/2012/07/20/dropbox- secu...](http://www.tonido.com/blog/index.php/2012/07/20/dropbox-security- breach/)) are better than Public Cloud Storage/Sync services.

<comment><USER11> What makes you think that the average user is better able to secure their own hosted system than a company with a dedicated team of security engineers can?

<comment><USER12> I'll suggest that fragmentation - not having a single point to find all user data would reduce the impact of a breach. Dropbox is a higher value target than John Doe. So hackers are probably less motivated. The user system itself may not be as secure, it may not need to be because a breach is isolated and an attacker would be less motivated.

Just a thought that crossed my mind.</comment></comment></comment>


Ask HN: What Is The Best Web-Based Way To Collect Tips? - <AUTHOR>

What is the best way to collect tips on a website?
An ideal solution is one that not only makes it easy for people to leave a tip without leaving my site but also makes it easy to collect the money so I can spend it.
Collecting tips on service-based websites is a solution that benefits us all. <comment><USER2> Have a look at WePay. They are more group oriented but might work for you. <https://www.wepay.com/>

Google Checkout is another option: <http://checkout.google.com/sell/>

There is also Amazon FPS: <http://aws.amazon.com/fps/>

I doubt you will find a payment solution that lets the users completely stay on your site. They payment service has no way to verify the payers identity otherwise.

<comment><AUTHOR> WePay seems promising, plus they are a YC-funded startup.

WePay doesn't do a very good job of explaining on their website how you collect your money, though. There's just some mention of a prepaid visa card and that's about it.

If someone here works with WePay, seriously consider doing a better job of explaining how people actually collect their money.

</comment></comment><comment><USER3> Paypal?

[https://www.paypal.com/us/cgi-bin/?&cmd=_donate-intro- ou...](https://www.paypal.com/us/cgi-bin/?&cmd=_donate-intro-outside)

It does seem to have the drawback of redirecting users to another site.

<comment><AUTHOR> i really, really don't like paypal because of two things:

1) ruining the user experience by forcing users to leave my site.

2) waiting to get my money from paypal.

If you have the paypal debit card, you can get your money immediately from an atm. but the problem there is waiting to actually get the paypal debit card. also, if you manage multiple sites, you can't realistically have one paypal account for multiple sites.

</comment></comment><comment><USER4> Have you considered Flattr? <http://flattr.com/></comment>


Where are the Internet Cooperatives? - <AUTHOR> http://jordangoldstein.wordpress.com/2011/08/16/where-are-the-internet-cooperatives/

<comment><AUTHOR> OP and author here. Out of interest, how many of you who read the article were already familiar with what a cooperative is?

</comment><comment><USER2> I was, :)</comment>


Ask HN: What is your SSO preference? - <AUTHOR>

Is it worth setting up SSO for Google, Twitter, Facebook? Would you prefer just a normal registration? I know there is the option for both, but it seems like annoying to have that many options. <comment><USER2> We use <http://rpxnow.com/> we only have to worry about their interface.</comment>