Jekyll CMS on Amazon S3 and MaxCDN - <AUTHOR> http://blog.netdna.com/developer/supercharge-your-site-with-jekyll-s3-and-maxcdn/ <comment><USER2> After using Jekyll for two years with lots of hacks to have HAML and others, I switched to middleman, which has everything I need out of the box: <https://github.com/middleman/middleman>

<comment><USER3> I have also. It really is wonderful.

</comment></comment><comment><USER4> Current MaxCDN customer here. I'm really excited about this. I host multiple sites on Cloudfront but assets for a rails app on Maxcdn. I wanted to consolidate about a month ago. When I asked MaxCDN support why I couldn't use www, they just said no and that I should move to netdna (their other brand) to do it.

From the blog post:

"Note: MaxCDN does not automatically allow you to create a www CNAME in order to protect their system from DDoS attacks. To enable this functionality, email MaxCDN directly and mention this blog post."

I'm going to ask again and see if I can test against the experience of deploying to cloudfront. One of the things now with cloudfront is it often takes a bit of time to expire the cache.

Edit: Here's the response I received 5 mins ago from support after asking for this...

"Thanks for emailing us and I do apologize for the delayed response. I will need to escalate this to our support engineers for verification since we don't allow the use of "www" as part of custom domains for security purpose and also this needs higher level of access."

<comment><AUTHOR> @sudonim email me your account and I will enable it for you: jdorfman at maxcdn dot com

<comment><USER4> Awesome. Thanks for your help.

</comment></comment></comment><comment><USER5> Am I missing something or is Jekyll an outrageously user _un_ friendly blogging platform?

I have to create a text file, specify the layout, ensure the timestamp and title is in the filename, and then write HTML.

I am stunned no one has made a simple scaffold that lets me create a post with a button click and then use markdown to write, on a simple web app.

<comment><USER6> You're looking for <http://prose.io>, built to work with Jekyll.

<comment><USER7> OK, this project and that Substance editor are amazing.

</comment></comment></comment><comment><USER8> 1\. Jekyll isn't a CMS per se. (I know this is a nitpicky thing) 2\. GH-Pages actually performs a ton of server-side optimizations.

I use it, and my site currently scores 95 on YSlow. You can't use .htaccess on GH-Pages, yet, this is what they do for you: <http://d.pr/i/81zP> Note that the grade E in that is my fault. I have a favicon URI, but I never uploaded a favicon. Everything else is optimized automatically.

</comment><comment><USER9> How does Jekyll + S3 + CDN compare to dynamic rails site with russian doll caching (cache digests) using something like redis?

<comment><USER10> You'll likely get similar performance as long as your comparison is between Jekyll + S3 + CDN and Rails + Caching + CDN. Otherwise, the worldwide caching in CDNs will outperform the Rails app in a single region.

</comment></comment><comment><USER11> We're very interesting is maximising site speed (which we are currently reviewing - too many plugins slowing things our Wordpress site up) but I don't think we could easily manage to produce a new post everyday using a static site generator - am I wrong?

<comment><USER12> What problems do you see that would stop you from posting everyday?

</comment></comment><comment><USER13> Any particular reason to use MaxCDN over CloudFront?

Edit: just realized why that's a silly question. Would still be curious to hear the answer though.

<comment><USER14> I made this decision just this week, biggest reason being gzip compression. S3 will only store your file compressed or uncompressed, and you have to do server-side gzip detection to request the proper version, which isn't possible with CloudFront. [1]. You also have to gzip compress locally and upload both versions.

With MaxCDN, I just upload uncompressed, and it will gzip upon request certain text file types (xml, js, css, etc.) [2].

[1] [http://blog.kenweiner.com/2009/08/serving-gzipped- javascript...](http://blog.kenweiner.com/2009/08/serving-gzipped-javascript- files-from.html)

[2] <http://www.cdnplanet.com/compare/cloudfront/netdna/>

<comment><USER15> I feel like this is almost a non issue unless you're running a site that _absolutely needs_ to run everywhere since the last browsers that shipped without gzip support were released in what, 1998? A significant portion of your users (according to O'Reilly's 2009 _Even Faster Websites_, around 15%) don't say they can support gzip even though they can. Just ignoring Accept- Encoding headers and serving only gzipped content is probably good enough for 99% of people and likely gives you slightly better overall performance on average than actually respecting whatever the request headers say.

<comment><AUTHOR> @HeyImAlex A week ago I would have totally agreed with you. I asked a friend and he told me "replace the user-agent with a misconfigured upstream proxy and you run the risk of serving an uncompressed version to end user that supports gzip, and vice versa."

</comment></comment></comment></comment><comment><USER16>
      On the Obama campaign we made our donate pages 60%
      faster and got a 14% increase in donation conversions.

Did they test this? For what purpose? We've known this is true since 2006.

[http://www.zdnet.com/blog/btl/googles-marissa-mayer-speed- wi...](http://www.zdnet.com/blog/btl/googles-marissa-mayer-speed-wins/3925)

</comment><comment><USER17> or just start blogging on gist.github.com. your blog url is [http://gist.github.com/<your-github-id>](http://gist.github.com/<your-github- id>);

</comment><comment><USER18> Boto is awesome for interacting w/ AWS, but managing an application stack in ruby (jekyll) and a deployment stack in python (<https://gist.github.com/4596766>) does not seem optimal.</comment>


YC startup Clickpass looking to hire a designer in San Francisco - <AUTHOR> http://www.webkitchen.co.uk/2007/09/yc-startup-clickpass-requires-htmlcss.html

<comment><USER2> Interesting...this is only the second UK based YC funded company that I know of, and it is also made up of people from Cambridge and Oxford. Does it really not matter where you go to school?

<comment><USER3> The first one introduced us to the second.

</comment></comment><comment><USER4> What % of equity would you offer? I'm in a similar position and I'm wondering about how much we should give away (if at all).

<comment><AUTHOR> As Jay said it's entirely dependent on the person, who they are and what they bring to the company.</comment></comment>


Casey Neistat Bot – Chat, ask Qs, watch videos and see his gear - <AUTHOR> http://m.me/caseyneistatbot <comment><AUTHOR> I've been teaching myself how to build bots over the last few weeks, using Chatfuel. @joshbocanegra built SelenaBot and Christina Milian Bot - I've been saying celebs are the best use-case for bots for while and I just got what Josh was building! I wanted to dive in too, so I did.

This is one of 6 bots I have made - Keep your eyes peeled for the others! (I have a medium draft in progress)

I went with more of a light-weight app approach rather than actual text based... if Google can't get an AI convo right then I'm not interested in delivering a sub-par conversational approach to users. I'd rather users be able to tap away and glide through with ease.

I've been contacted by other Youtubers to make them a bot too :) I think this bot shows as a decent template for a good experience (IMO!) - and I'll be copying it for others too.

P.s. My favourite part is the "Ask Me Stuff" \- I hadn't added it until this weekend. I felt the bot was pretty much done but something was missing...I added it and thought 'that was what was missing!' \- let me know what you think</comment>


A list of beginner-friendly NLP projects–using pre-trained models - <AUTHOR> https://towardsdatascience.com/a-list-of-beginner-friendly-nlp-projects-using-pre-trained-models-dc4768b4bec0 <comment><USER2> > Language identification is notoriously tricky.

No. Language identification is surprisingly easy. Simple naive bayes performs really well on character level.</comment>


How To Appear To Be A Sophisticated Programmer - <AUTHOR> http://williamsportwebdeveloper.com/cgi/wp/?p=531

<comment><USER2> So in which (human) languages do programmers (a) entirely use their own languages with its own native technical terms; (b) drop English terminology into sentences in their own languages; (c) switch entirely to English when talking about programming?

My one data point of amusement: I once worked in Hong Kong (a Cantonese- speaking city) with a team which had outsourced part of its project to Shenzhen (a Mandarin-speaking city). In HK Cantonese, people usually use Cantonese words for simpler technical terms like "web page" or "hard disk", but more complex ones like "dual boot" or "buffer overflow" would be in English. In Mandarin, and also Cantonese as spoken in the mainland, they use almost entirely Chinese terms ... or at least a lot higher proportion than in HK Cantonese. (A lot of those terms, of course, are just calques from English).

Now, the HK guys could speak passable Mandarin, and some of the Shenzhen guys could speak okay Cantonese (though not much English). So if the two groups were talking about what to have for lunch, or about football, or whatever, they could go on for hours. Once it came around to work-related topics, though, the conversation slowed down to a crawl while the HKers tried to grok the mainland-style technical terms. Us foreigners always made fun of them for being unable to understand their own mother tongue.

I'm told an analogous situation exists among Hindi & Urdu speakers? Basic conversation is fine, but when you get into highly academic topics, one group apparently starts using Perso-Arabic words and the other group starts using Sanskrit words and communication all goes pear-shaped.

</comment><comment><USER3> The key thing I got from this article: in French, a buffer overflow is called _un dépassement de tampon_. I plan to use this expression during my next code review.

<comment><AUTHOR> Because a _tampon_ stops the flow.

</comment></comment><comment><USER4> Phony.

Even francophone programmers switch to English among themselves in technical speech; perhaps subconsciously, call it technical diglossia if you want.

You wanna _appear_ sophisticated? s/french/mathematics/, but learn it well and back your words up with knowledge, not parroting technical lingo and hoping no one notices you're full of it.

</comment><comment><USER5>
      There are no French programming languages, not even Pascal
      or Eiffel uses French words for the syntax, and all the
      documentation is in English.

OCaml is implemented by _le French_ , and I've seen code that uses French variable names. I haven't yet seen the camlp4 hack that lets you say _laissez_ instead of _let_ , though.

</comment><comment><USER6> Learn to speak Indian since it appears that most sophisticated programmers are from India. :) By the way, i am not from India.

<comment><USER7> There's no language called "Indian". They speak Hindi and English in India.

<comment><USER8> "They speak Hindi and English in India."

We do and with Hindi and/or English you can get by almost everywhere.

In practice, the language spoken changes every 200 miles you travel (and India is a big country). Most educated Indians speak 3 or more languages.

From Wikipedia,

"According to the most recent census of 2001, 29 languages have more than a million native speakers, 60 have more than 100,000 and 122 have more than 10,000 native speakers.

The government of India has given 22 "languages of the 8th Schedule" the status of official language."</comment></comment></comment>


Show HN: Offline/Online Learn to Code Activity - <AUTHOR> http://www.thecodepuzzle.com <comment><AUTHOR> I was running an afterschool program teaching kids to code and we were looking for a way to have them code that was more social and group oriented rather than having everyone hunched over a computer more or less by themselves all the time. I was also looking for a project to explore Computer Vision and Machine Learning. This ended up being a good fit for both needs. The video on the website shows the students working on it. It's surprisingly engaging for being just paper cards you are writing on...

<comment><AUTHOR> If you want to try it out and don't want to register via the website you can email me at my first name (jared) at puzzleschool.com and I'll send you the zip file containing the cards and a few sample programs that can be printed out and photographed directly.</comment></comment>


AsteroidOS – an open source OS for smart watches - <AUTHOR> https://asteroidos.org/ <comment><AUTHOR> I'm using AsteroidOS on my LG G Watch and I'm very impressed. The smoothness & clean UI, is one of the main reason for me to continue using it in-spite of lack of crucial daily-use wearOS apps like Authenticator.

IMO, since smart watches are mostly about notifications & heart rate monitors; alternative OS for smart watches like these doesn't necessarily compromise much. My watch doesn't have a HR monitor, more over wrist based HR monitors cause me pain[1]; so I can't say about it in Asteroid OS.

Architecture is well thought out with OpenEmbedded, libhybris, Wayland & Qt QML interface doesn't feel like some hobby project. I just wish there was more community love.

[1]: [https://abishekmuthian.com/my-experience-with-fitbit- charge-...](https://abishekmuthian.com/my-experience-with-fitbit-charge-hr- numbness-tingling-and-pain-fec85d41d165/)</comment>


Sharing Your Labor of Love: PyPI Quick And Dirty - <AUTHOR> http://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/

<comment><USER2> Python packaging can be confusing, but this does a solid job of explaining the current state of things.</comment>


Network Effect - <AUTHOR> http://networkeffect.io/ <comment><USER2> Ok, if you're going to have browser snobbery, at least explain why I should bother opening your preferred browser. Visited site in Firefox, and left not knowing anything about the site. If you can't upgrade your software engineers, at least upgrade your splash screen.

</comment><comment><USER3> Why doesn't this site work with Firefox? What about it is not "high performance"?

<comment><USER4> Notably it's quite fast: [http://arewefastyet.com/](http://arewefastyet.com/)

Not only that - but this website's message is patronizing. If you don't support Firefox due to some incompatibility or merely dev time, just say so. Don't make up an uneducated excuse.

<comment><USER5> I've found the gap in rendering performance between chrome and firefox to be enormous (in a number of areas) - didn't realize this until I started doing some pretty intensive visualization stuff lately. are those numbers you cite just javascript benchmarks?

<comment><USER4> Yes - it's focused on their javascript engine.

As far as visualization stuff, are you on linux? I found out that firefox by default _turns off_ the off main thread compositing support. Enabling this was a huge performance boost for me, it's really bizarre they don't enable it.

If you're not on linux.. I'd be curious what performance issues you're having on Firefox.

<comment><USER5> on a mac.

SVG for sure, eg: [http://mbostock.github.io/d3/talk/20111116/bundle.html](http://mbostock.github.io/d3/talk/20111116/bundle.html)

I'm pretty sure other things as well including text and updating text in a text input element, though I haven't debugged the performance issues fully yet.

<comment><USER4> Hm. Well, that renders instantly for me on intel hd 5000 + firefox 41.. compared to chrome on linux and it was identical to my eyes, but I haven't measured yet.

<comment><USER5> On that page I was basing my opinion on woeful animation speed, but now I think that's probably some issue with events. Ok, here's what I'm working on: [http://www.datavstime.com/horizons](http://www.datavstime.com/horizons) \- i think the following are all much slower in firefox: [1] axis rendering (svg) [2] updating the date/time text in the text input elements (currently causing worse horizontal scrolling performance) [3] the value overlays (text in divs), which don't update as quickly when there are lots (say > 100) of them. The bulk of the page is WebGL which is fast in firefox (that said, I currently have a flickering problem). Note: I have plans to work around all this, but just haven't implemented it yet...

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> This is the first time I've ever seen a site that shows a "We don't support your browser, please get Google Chrome" message that actually links to the webkit bug[1] that explains why they don't support my browser. Kudos for providing a concrete reason!

[1] [https://bugs.webkit.org/show_bug.cgi?id=135379](https://bugs.webkit.org/show_bug.cgi?id=135379)

<comment><USER7> Are we seeing the same page? The only reason they mention is speed.

<comment><USER6> For Safari? They say

> Due to a technical issue in Safari affecting video playback, please view > Network Effect using Google Chrome.

with the words "technical issue" being a link to the webkit bug I mentioned.

</comment></comment></comment><comment><USER8> Works great in Firefox so long as you lie about what browser you're using. Cool project, wish it wasn't a jerk about user agent sniffing.

</comment><comment><USER9> > Like the Internet itself, the project is effectively endless, containing > 10,000 video clips, 10,000 spoken sentences, news, tweets, charts, graphs, > lists, and millions of individual data points, all presented in a > classically-designed data visualization environment. To see and hear it all > would take hours, but the viewing window is limited to around seven > minutes... which induces a state of anxiety, triggers a fear of missing out, > and totally frustrates any attempt at completeness.

Awesome execution and design, but a poor premise. This isn't inducing anxiety in anyone since we have no value for or attachment to your site, except maybe as an abstract statement... That is, unless the point is that humans are so fragile and confused that we will get nervous if you set a timer for something that we don't understand or have a reason to care about, which I suppose is a popular view of human nature in postmodern art, even though I think that's ridiculous and probably generates more anxiety than being helpful to others.

</comment><comment> X-Istence Interesting concept, although until I clicked the ? at the bottom left I didn't understand what this is about or what was going on.

</comment><comment><USER10> The hell did I just go to.

</comment><comment><USER11> Unsurprisingly the site used more CPU time in chrome than in firefox.

</comment><comment><USER12> I don't get it.

</comment><comment><USER13> website is down. it says: "TCP connection closed unexpectedly."

</comment><comment><USER14> images + heartbeat sound distracts from the text ime.

</comment><comment><USER15> incredible polish, wow</comment>


Actix – Actor Framework for Rust - Bella-Xiang https://github.com/actix/actix <comment><AUTHOR> The naming is a little confusing here. This is Actix the actor model library, not "Actix web" the web framework that's usually discussed.

Originally "Actix web" depended on Actix the actor library, but no longer. Though they can be used together. And I think websockets still require actors?

I'm using both Actix and Actix web for a personal project. I like it a lot and think the actor model is good fit for applications that don't fit well into a request lifecycle.

My main pain point with it is the use of futures. Right now it's a huge pain to have more than one return value in an Actor Handler, the functions that handle actor messages. Even if you box the returned Future, you end up having to use futures::Either a bunch and when you mess it up you get tons of confusing errors filled with the huge inferred types.

Implementing something like:

      if (condition1) {
        return <future for service call1>;
      } else if (condition2) {
        return <future for service call2>;
      } else {
        return <no-op future>;
      }

Is a big pain requiring two layers of future::Either. Or I just don't know what I'm doing, which is very possible.

async/await would be a huge improvement, but can't be used at the moment, even though the current version of Actix uses std::future's.

<comment><USER2> > Even if you box the returned Future, you end up having to use > futures::Either a bunch

That's really strange. A Boxed future is the end-all-be-all of not caring about the underlying type. Would you mind sharing a snippet of code that shows where you need both a Boxed future and Either?

<comment><AUTHOR> You're probably right, I must be missing something. I'm also still on futures 0.1 because I'm still porting it to std::futures.

Here's an example of what I was discussing:

[https://github.com/dmm/exopticon/blob/c40d14c80c150ef6270732...](https://github.com/dmm/exopticon/blob/c40d14c80c150ef62707320085b8f9243160c8a8/exopticon/src/camera_routes.rs#L245)

The idea is that I want to implement a relative ptz move on a camera but some cameras have a broken relative move implementation so in that case we instead use a continuous move + a delay + a continuous stop. The final case is when a camera has no ptz it returns Http::NotFound.

<comment><USER3> If you have

        if cond {
            Box::new(future_a)
        }
        else {
            Box::new(future_b)
        }

then by default, the type of the first Box will be concrete Box<FutureA> rather than Box<dyn Future>, which is why you'll get a type error that Box<FutureB> != Box<FutureA>

You'll need to coerce the first expression to Box<dyn Future>. The compiler will auto-coerce the other one.

        if cond { Box::new(future_a) as Box<dyn Future<...>> } else { Box::new(future_b) }

See [https://play.rust- lang.org/?version=stable&mode=debug&editio...](https://play.rust- lang.org/?version=stable&mode=debug&edition=2018&gist=cd2d3fe1b68d430f1de3f0d4ad8ec3ac)

(This auto-coercion also applies to other situations where the type of an expression must match the previous one's, such as with a slice literal where the first element dictates the types of the rest.)

You don't need to coerce if the compiler can infer that the whole if-expr must be of Box<dyn Future> type. This happens when the if-expr is being returned directly and thus must have the same type as the function's return type, or it's being assigned to the binding and the binding has been previously inferred to have (or explicitly has) Box<dyn Future> type. You can test this in the playground by returning the if-expr directly instead of binding it to `result`.

<comment><USER4> A more stylistic pattern for this is to give the binding a type so that the coercion of the if/else expression works automatically instead of using `as`.

Also, there's work being done so that this won't be needed by deferring evaluation of expressions until the whole body has already been evaluated so that inference with the naïve code will work at some unspecified time in the future.

</comment></comment></comment></comment></comment><comment><USER5> What is the difference between the actor model and object oriented programming? It seems to me like they are basically the same paradigm but with all the names changed, and some additional restrictions like all messages being async and objects only being able to process one message at a time. Why is it necessary to create a whole new paradigm just to enforce such a style?

<comment><USER6> Your question is interesting from the perspective that the actor model could be seen as the precursor to modern object oriented programming. Both the actor model as defined by Carl Hewitt and the early object computational models as they are defined by Alan Kay (Smalltalk) originated during the same period and are based on similar philosophies of computation.

However, on the object oriented model track, due to practical reasons, its definition descended into a single-thread dispatch system with full message delivery guarantees. Locality was dropped (due to singletons) and the distributed model was not maintained. Method dispatch systems were later added, but could be considered a kludge. This also explains the mismatch between remote systems calls (SOAP, REST, etc.) and the internal language. Ideally, these would be the same.

With our modern systems design constraints, especially given distributed systems, we need to revisit those early decisions. The Actor model is a good blueprint for our designs. It is fundamentally decentralized, locality is enforced and at-most-once message delivery is assumed. These allow us to design and implement distributed algorithms which would be hard to implement using traditional OOP methods.

<comment><USER7> Aren't they connected by the idea of active objects? [https://en.wikipedia.org/wiki/Active_object](https://en.wikipedia.org/wiki/Active_object)

<comment><USER8> Based on the description in your Wikipedia link there is a relationship for sure -- but I don't see a strong connection. Here's how I see it:

An Active Object is essentially an OO encapsulation of a worker thread. It provides clients with a synchronous call interface where all results are resolved asynchronously (e.g. using futures for results). Internally, the Active Object converts client requests into asynchronous operations, enqueues the operations, and executes them on a private worker thread using object- specific dispatcher logic.

In an OO system, not all objects are required to be Active Objects. So there may be a mixture of synchronous and asynchronous execution.

In contrast, in an Actor system all communication is via asynchronous messages and there is no inherent requirement for multiple concurrent threads of execution.

Active Objects use a mechanism such as futures to return results. On the other hand, if there is a request-reply message exchange in an Actor system, both the request and the reply will be separate messages. The client would receive the result of a computation by receiving a message.

The relationship I see between Actors and Active Objects is that both require some kind of queue for dispatching operations (since Actor behaviors are never re-entrant). Active Objects convert synchronous calls into asynchronous operation requests, whereas Actors use asynchronous messages for _all_ inter- entity communication.

I agree with the GP that event loop programming is the closer OO analogue of Actors.

</comment></comment></comment></comment><comment><USER9> Highly recommend Bastion if you're looking for a Rust Actor library / runtime. It uses async/await etc, and has supervision trees and restart strategies taken straight from Erlang/OTP

[https://docs.rs/bastion/0.3.4/bastion/](https://docs.rs/bastion/0.3.4/bastion/)

[https://github.com/bastion-rs/bastion](https://github.com/bastion-rs/bastion)

<comment><USER10> would you even suggest this over riker?

<comment><USER9> I haven't used Riker, is it good?

</comment></comment></comment><comment><USER11> I'm amazed on how much discussion digressed to actix-web. Understandable, seen the latest happenings there, but still... I tried quite a while ago Actix, coming from Erlang/Elixir and Scala/Akka. While the cognitive load of using it was not high, when I started my first test, I noticed one core being maxed out, and all others sleeping, which was kinda unusual for me. I asked why, and the author answered that it uses an event loop, so if you want it otherwise, go away and use something else, like Riker... So I went away :) ... I would assume this kind of behaviour has been corrected meanwhile (I mean the library, not the comms), because otherway, it's just a Node written in Rust. My 2c :)

</comment><comment><USER12> Actix (the actor framework) is separate from what people are discussing here: actix-web, which _supports_ actix). In earlier versions of actix-web it was based around actix; I remember implementing actors and handlers. Since 1.0 or so that got changed to more of a standard setup.

I'll add my 2c on actix-web: in my opinion it tries to do too much. hyper (simply based on tokio) is all you need for a fast async server. Anecdotally, I know many people who basically use just this stack, over actix- web/warp/tower etc.

There are other actor systems, like kay [0].

[0]: [https://citybound.github.io/citybound/kay/index.html](https://citybound.github.io/citybound/kay/index.html)

</comment><comment><USER13> I'm currently in the process of removing actix from one of my projects and replacing it with asyc/await and some channels. Actix comes with a ton of dependencies and doesn't buy you a whole lot anymore.

<comment><USER14> Yes. I would imagine Actix being out of favour now. Funny to see it being a rust project shared on hn

<comment><USER15> What is in favor now?

</comment></comment></comment><comment><USER16> Can somebody please summarize the outcome of the recent kerfuffle? I don't mind which way it came out, but it seems worth knowing what it was.

I absolutely don't want any even-slightly-inflammatory answer.

<comment> _-___________-_ This is from memory, I would welcome any corrections.

Actix was written with a lot of _unsafe code_ [0], which some people considered unnecessary and potentially dangerous in a web framework. In some cases the unsafe code may have been performing better than equivalent safe code. In other cases, it was possible to rewrite with safe code without losing performance.

People submitted patches to replace unsafe code with safe code. The maintainer of Actix responded with hostility to some of these patches, and (at least for some of the patches) did not seem to see the reason why people wanted these changes.

Subsequently, a lot of hostility was directed at the maintainer on various public Internet fora.

Ultimately, the maintainer of Actix deleted the repository from GitHub, but then had a change of heart and restored it, with a new maintainer.

[0] _unsafe code_ according to the Rust definition of unsafe: [https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html](https://doc.rust- lang.org/book/ch19-01-unsafe-rust.html)

<comment><USER17> A small but crucially important clarification: it wasn't just that there was a lot of `unsafe` code, but that some portion of it was _unsound_.

You can read more about what I mean by _unsound_ in this context here: [https://docs.rs/dtolnay/0.0.7/dtolnay/macro._03__soundness_b...](https://docs.rs/dtolnay/0.0.7/dtolnay/macro._03__soundness_bugs.html)

<comment><USER18> Interesting - thanks for sharing that. Though that article does make things a little clearer, I get the impression we should really have three circles on a venn diagram - essentially, I'm decoupling the concepts of "unsound" and "bug":

\- Bug - i.e. some unintended action of a piece of code

\- unsound - i.e. code that can be used (or abused) to produce unsafe effects

\- unsafe-bleed - i.e. code that cannot be proven to be safe at compile time, or even potentially code that can be proven to be unsound, that a third-party developer could legitimately use without knowing it was unsafe/unsound.

The question I'm curious about is what the proposed PRs fixed. It's clear they didn't fix a bug; the API used was part of the undocumented internals (afaik), and all internal uses of the code were reportedly clean.

It maybe "fixed" an unsoundness, future developers of the project may indeed have misused this code and received undefined behaviour as a result (again, I don't know how common or uncommon the particular misuse would be in the rust community)

I don't know whether this fixed an unsafe-bleed though; whether a third party has access to these objects and has the ability to combine them in such a way as to produced undefined behaviour.

My question to you is: is this a Bug, such that the code did not perform as expected; Is there a bleed of unsafety here, where the permissions model of rust allows access outside the crate to these implementation details; or is it just unsoundness - and if so, could the unsoundness have been mitigated some other (more performant) way?

<comment><USER17> I don't have the time or desire to answer that question. That would require a level of scrutiny into specific PRs and details that I don't think is productive to go into. I think my clarification stands on its own. Gratuitous use of `unsafe` is bad on its own, and unsound `unsafe` use is also bad on its own. They are two different categories of problems. Both were present in actix. These weren't the only issues, but others have addressed those. My only point was to clarify that the issue wasn't just frequency. Soundness was also an issue.

Whether this only impacts actix developers or whether it impacts users of actix is, I grant, an important question in order to asses just how much you should freak out about any particular soundness problem. (As dtolnay points out, sometimes you don't need to freak out at all. So my statement includes "zero amount." But I am intentionally conveying a bias here: some level of freak out is probably appropriate in a high profile ecosystem level project for Rust specifically. IMO.)

</comment></comment></comment></comment></comment><comment><USER19> I'm really excited about this project. Using Akka was one of those things that made distributed/parallel execution just "click". Particularly useful was being able to draw your architecture the same way one might draw an organization on a whiteboard. Everyone can quickly understand what happens and who is responsible for what.

</comment><comment><USER20> Out of curiosity - actix seems to be very performant compared to actor frameworks implemented in other languages - would it be a good fit to implement a database using it? For example mapping worker pool and workers to actors?

<comment><USER21> I would rather use linux io_uring [https://www.reddit.com/r/rust/comments/f06y7m/comment/fguw9a...](https://www.reddit.com/r/rust/comments/f06y7m/comment/fguw9a3)

</comment></comment><comment><USER22> Actors in principle (isolated objects assigned to threads) sound great until you need to SHARE data, then you enter a new universe of compromises where you need locking mechanisms (for performance), but no language semantics support it natively. Pony introduced reference capabilities but that still created a cludge for those times you needed synchronous access. There is no model yet where locking primitives are associated with resource handles.

<comment><USER23> > ... sound great until you need to SHARE data ...

If by "share" you mean one writer and others with read-only access, then staleness of data is a question. In java we have volatile for that, I think there is a similar keyword in C++. However, you'll have to maintain the invariant of "one writer and others with read-only access". If you don't need absolute latest version, you can do message passing/pubsub etc.

If by "share" you mean multiple writers, I'll have to question your design decision. Why do multiple threads have to write to same memory location? Most of the time, you can get away with partitioning/sharding.

If you disagree, I'd like to know why?

<comment><USER22> Unfortunately, our objects are not isolated, they interact with the world, and often need to be shared when we cannot copy the resource (performance). Eg. a (partitioned) rendering surface may be written simultaneously, a physics engine needs to know what objects are in the game world, multiple bank accounts need to be updated simultaneously, etc. By design is not always possible to sequence, some transactions must be atomic across multiple objects.

<comment><USER24> Yes they are, atom is in isolation, cell has membrane, we have a body we have isolation and encapsulation in physics/chemistry/biology. In actor model message passing is interaction. Since you mentioned game, check out [https://github.com/aeplay/kay](https://github.com/aeplay/kay), which is the isolation "objects" for [https://github.com/citybound/citybound](https://github.com/citybound/citybound) "physics engine". On multiple bank accounts, well an account is an actor, so there is no problem there, please have a look at [http://proto.actor/blog/2017/06/24/money-transfer- saga.html](http://proto.actor/blog/2017/06/24/money-transfer-saga.html)

</comment></comment></comment></comment><comment><USER25> How does it stack up against more mature actor frameworks like Akka? (akka.io)

</comment><comment><USER26> Whats the state of Rust if I wanted to get into it for backend development? I've looked briefly into Rocket and liked it but didn't delve too deep, I understand Actix is one of the most mature?

<comment> _-___________-_ I wouldn't call Actix the most mature, but it's definitely the one that gets talked about the most.

I built a fairly complex backend directly on top of Hyper[0] (it doesn't even involve that much glue, really) in 2016 and have updated it as Rust and Hyper have matured. It's actually a delight to work on, and I brought a new hire on board recently who had no trouble getting up to speed, since everything is just straightforward, idiomatic Rust.

I've looked at basically every Rust "web framework" that's been released since 2016, and I can't see any of them simplifying the codebase enough to justify using them. Quite a few of these frameworks result in code that isn't obvious to a Rust programmer who hasn't used that framework before, too, which I consider a disadvantage (I prefer obvious over clever).

[0] edited to add for those that may not be aware: Hyper is a client & server HTTP library. Many/most of the frameworks are built on top of it.

<comment><USER27> > I wouldn't call Actix the most mature

Surely? I try several other for replace my .NET core project, and Actix is the only one that barely get there.

Which other handle without much fuzz:

\- Auth (big!) \- Routing with state and db pooling \- Forms \- Templates \- Encode/Decode all stuff (query string, headers, etc) \- Allow to inject middle-wares \- Have (at least) the bare minimum of functionality like gzip encoding \- And many other small details I forget now

I have worked, alot, with django, then use .net core and now Actix, and the others rust frameworks are lacking badly as far I see.

What I see the rust ecosystem is lacking now is mostly around templating (need more love for dynamic options!) and some stabilization around rdbms usage..

<comment> _-___________-_ Actix has a lot of features, but to me that's not the same as maturity. I don't want one "batteries-included" framework, I want components (preferably mature and relatively boring) with well-defined interfaces that I can use together to build my backend.

<comment><USER27> Thats is fine, but is surprising how many stuff you need to make a semi- complex site. Is better for a ecosystem to have the "batteries-included" framework that cover the needs of many and then specialize.

Django, ROR pull a lot of people into.

</comment></comment></comment></comment></comment><comment><USER28> This framework's core developer has left, probably new community took it over. Hopefully it will continue to be supported and developed.

Rust still has a way to go for being a mature eco-system for doing any serious web programming work. Given the focus of Rust on systems programming, I will still be careful to consider it for anything web related.

Hopefully situations like abandoning a project suddenly will not happen again. [1] [2]

[1] [https://words.steveklabnik.com/a-sad-day-for- rust](https://words.steveklabnik.com/a-sad-day-for-rust)

[2] [https://github.com/actix/actix- web/issues/1289](https://github.com/actix/actix-web/issues/1289)

<comment><USER29> You seem to have a superficial level understanding about the Rust ecosystem for web development and for the actix ecosystem. Yet, this hasn't stopped others from trusting your opinion or agreeing with your comment, unfortunately.

This post is for the original actor architecture. The next architecture, which should have never been called actix, was based on a completely different architecture. This second version prevailed and remains in use today, as actix-net. Actix-web v2 uses actix-net. It features async-await syntax, is feature complete, and the architecture is mature. The project includes a guide, api docs, a vast collection of examples, and growing ecosystem. Actix- net is very high-performance.

The main concern about any actix project was related to poorly communicating uses of unsafe code, refusing to codify a policy about unsafe, and working with others, respectfully, to address real undefined behaviors.

The author has retired from the projects, for now. Others have stepped up to maintain and improve. It's very exciting to see people addressing unsafe blocks. Most importantly, actix-web lives on!

The expectations and treatment of authors who spend hundreds of hours on bleeding edge, open source work is also a major problem. This problem isn't specific to Rust, either.

<comment><USER30> Hi @Dowwie, I'm one of those "others" you mentioned that's trying to fill Nikolay's very large shoes!

Yuki (John Titor on GitHub), Rob and I are well on our way removing concerning `unsafe`s wherever we can. Sadly, there are some breaking changes but that's not stopping us and we're now headed to a 3.x release. No timeline on that just yet.

The community has bounced back quite a bit ever since the transition and I'm hopeful that actix-web will continue to be the leader-ish of Rust web development!

Just the other day we even had the first example mix some async_std into the mix (obviously, yes, some runtime weirdness with this)! [https://github.com/actix/examples/tree/master/multipart- asyn...](https://github.com/actix/examples/tree/master/multipart-async-std)

Happy to answer any questions y'all might have!</comment></comment></comment>


Why Fascism Is Rising Again (And What You Can Learn from It) - <AUTHOR> https://medium.com/bad-words/why-fascism-is-rising-again-and-what-you-can-learn-from-it-d5b853a7dccc#.2ze52o50o <comment><USER2> Like almost everybody who uses the term, the author never once defines "fascism" \-- it's just a magic word used to shut down political beliefs he doesn't like (a fact implied by Eco's point in _Eternal Fascism_ , that the word has a "fuzzy" or ambiguous meaning, which allows it to be used as a weapon).

As one example, take this:

> fascist ideas are beginning to take over societies wholesale (for example, > 47% of Americans approve of Trump's proposal to "ban" Muslims)

Keeping Muslims out of your country is a "fascist idea"? Does that mean any country that has ever kept Muslims out is "fascist"?

The whole essay would be vastly improved by dropping the F-word bogeyman and calling political trends what they are -- a resurgence of nationalism in the face of ever-increasing urbanization and migration, and a rejection of globalization and open borders.

<comment><USER3> > Keeping Muslims out of your country is a "fascist idea"?

Of course it is. Spreading xenophobia and fearmongering against some <mexicans, muslims, put some ethnic/religious minory here> is a classic in the first steps of all so called fascist regimes. Xenophobia and fascism are inseparable concepts. One can not live without the other.

And remember that Trump had tried also this dirty trick against hispanes, but it just didn't work so well in that case. I didn't be surprised if poorest black and asian people be seen also as targets and 'enjoy' a similar treatment in the future.

</comment></comment><comment><USER4> History never repeats itself, but sometimes it rhymes -- Mark Twain</comment>


Yipit Django Blog: Sharing Everything We're Learning - <AUTHOR> http://tech.yipit.com/2011/10/17/announcing-the-yipit-django-blog-techniques-best-practices-lessons-learned/

<comment><USER2> As someone also doing production Django for a web-app (as opposed to a news/content site) I'm thrilled to see a team committed to posting lessons- learned... but I'm always suspicious of "We're gonna post lots of great stuff here.. you know, soon." So hopefully you start coughing up the content. Looking forward to it :)

<comment><USER3> It's always a challenge to get more posts out but we're committed to it :-)

<comment><USER4> It really is a challenge. Maybe you could create a small buffer of articles. The size of the buffer would depend on how often you're going to post, but enough to last you a week or two. Everything in the buffer should be ready to publish so that you can always post something interesting at the intended rate. Even if you're _dead-set_ on posting _that thing_ on Friday, you'll be surprised to learn how hard it can be to find the time and motivation when your servers are melting, a critical bug has been exposed in your software and you're (non-blog-writing) friends come in, swinging two cold beers in each hand.

</comment></comment></comment><comment><USER5> This is great. I'm always looking for more django resources outside of the excellent docs, but there just doesn't seem to be a ton of up-to-date stuff out there.

Hopefully you can keep it up!

</comment><comment><USER6> Have you all ever taken a look at Django-DBBackup?

<http://pushingkarma.com/projects/django-dbbackup/>

What is your opinion on it? Compared to South?

<comment><USER7> I don't get it - what does django-dbbackup offer over 4 lines of bash:

        outputfile=/tmp/database_`date +%Y_%m_%d`.sql.gz
        pg_dump fashiondb -U fashionuser | gzip > $outputfile
        s3cmd --config ~/.s3cfg put $outputfile s3://mybucket
        rm $outputfile

<comment><USER4> Well, code to restore the database from a backup for one. It also seems to track form which server backups were created.

I haven't looked, but it might also, in the spirit of Django, be "database agnostic" and allow you to import data across DBMSs. You'd still need to keep some things like uploaded files in sync though.

<comment><USER7> Restoring is another 6 lines of bash:

        s3cmd --config ~/.s3cfg get s3://BUCKET/database_$1.sql.gz
        gunzip database_$1.sql.gz
        sudo -u postgres dropdb DBNAME
        sudo -u postgres createdb -O DBUSER DBNAME
        sudo -u postgres psql DBNAME < database_$1.sql
        rm database_$1.sql

But I suppose being database agnostic would be handy - it would make switching from mysql to postgres easier.

</comment></comment></comment></comment><comment><USER8> First post on how Yipit handles Django Settings is up: [http://tech.yipit.com/2011/11/02/django-settings-what-to- do-...](http://tech.yipit.com/2011/11/02/django-settings-what-to-do-about- settings-py/)

</comment><comment><USER9> Excellent, I have high hopes for this being a resource for real world Django. You guys have my eyes and ears!

</comment><comment><USER10> Can anyone recommend any similar existing resources?

<comment><USER11> There's "Django Best Practices", which was discussed two months ago (although it doesn't seem like it grew a lot since): <http://lincolnloop.com/django- best-practices/>

HN discussion: <http://news.ycombinator.com/item?id=2936364>

Any effort to assemble "field" knowledge around Django would be great. For instance, I was looking for best practices for splitting settings.py (separating dev, test and prod-specific configs). If anybody's interested, I went through: [http://stackoverflow.com/questions/88259/how-do-you- configur...](http://stackoverflow.com/questions/88259/how-do-you-configure- django-for-simple-development-and-deployment) , <http://www.djangobook.com/en/2.0/chapter12/> (under "Using Different Settings for Production") and <https://code.djangoproject.com/wiki/SplitSettings> ...

<comment><USER12> My normal settings structure is as follows:

      * settings/__init__.py
      * settings/base.py
      * settings/development.py
      * settings/staging.py.
      * settings/production.py
      * settings/credentials.py

This allows me to have a base settings file which the others inherit from, and all settings are tracked in git apart from passwords which are stored in credentials.py.

Unlike some other approaches, installed apps are just defined once (in the base), but apps can be added/removed for each environment.</comment></comment></comment>


Programming error voided Green Card lottery results - <AUTHOR> http://www.dvlottery.state.gov

<comment><USER2> A bit more detail on the non-randomness:

But when the numbers were drawn, it turned about that 90 percent of the winners came from applications that were submitted on just the first two days of a 30-day registration period.

<comment><USER3> This brings up a question: is the time of the submission a random variable ? If yes - assuming the submitters did not have the prior knowledge - then I think the results should be random even if we were just to select X consecutive entries at some day ?

</comment></comment><comment><USER2> Wow, that is terrible if you won in the original draw.

<comment><USER4> Yeah I feel terrible for all the people that were told they won just to have their dreams yanked out from under them. I wish the government could do something to make it up to them. Once they notify people that they've won they should have to make good on it. If it were up to me all the people that won by error would be allowed their visas, and another draw would be made for the remaining entrants. Then the remaining candidates would have a better chance than the original draw. Sure we'd have double the lottery immigrants coming over this year but this seems like the closest thing to fair to me considering the mistake that's already been made.

<comment><USER5> My initial thought is to agree. But what would we do in the situation where a computer error caused it to be weighted toward something other than date of application? What if it were 90% people with last names that start with "R"? Or 90% males?

<comment><USER6> Sure, "What if XYZ?" But that's not what happened. If the algorithm demonstrated a bias for or against a protected class (nationality, gender, etc.), then one could argue against honoring results. Otherwise, be fair to the people who "won." In most cases, I would argue that revoking visas that have already been awarded would cause an unacceptable amount of human suffering. The course of action with the least harm to applicants in specific and society in general is running a second lottery.

</comment></comment></comment></comment><comment><USER7> I'd really like to see an NTSB/FAA-style post-mortem analysis of bugs like these, along with suggested process improvements that will prevent such errors from occurring in the future.

Our industry could really benefit from a body of analysis on programming bugs that rivaled the body of analysis we have on plane crashes.

</comment><comment><USER8> They should (in advance) post the exact algorithm by which they choose the pseudorandom results, and (on lottery day) post a truly-random seed selected by a process performed in public or verified by independent observers. Then anyone would be able to verify the lottery results after the fact.

</comment><comment><USER9> > U.S. law requires that Diversity Immigrant visas be made available through a > strictly random process. A computer programming error resulted in a > selection that was not truly random.

Computer generated numbers are never truly random. At what point is it "random enough"?

<comment><USER10> Many computers have physical entropy sources, so they can create truly random numbers. <http://www.cryptography.com/public/pdf/IntelRNG.pdf>

<comment><USER11> I don't think it's really necessary to use true quantum randomness. A good- enough-for-government-work definition of a random drawing is that every applicant has an equal chance (to _N_ decimal places) of being chosen at the time they submit their application.

For this, pseudorandom is good enough. Sure, it's completely deterministic which applications will get chosen once you've chosen your algorithm and seed. But how do you choose your seed? Probably from the clock at the time you run the program. And what determines the precise time you run the program? Why, a bunch of neural signals going around in the head of the dude whose job it is to press "enter" on the greencard lottery program.

There are some purposes for which random is better than pseudorandom, this ain't one of 'em.

</comment></comment></comment><comment><USER12> Weirdly, this seems to be on the front page twice for me:

<http://news.ycombinator.com/item?id=2545331>

</comment><comment><USER13> so it seems no one has posted the required xkcd joke in this cases, so here it is: <http://xkcd.com/221/>

</comment><comment><USER14> Yeah, that would be a truly horrible feeling.</comment>


Banks are broken - <AUTHOR> http://zbruhnke.com/banks-are-broken

<comment><USER2> "The fundamental problem with banking is that it hasn't changed or reshaped in centuries,"

Why is that a problem? Change for change's sake is stupid.

"In fact, it should be so far removed from what we call "Banking" today that it should not even make sense to some people at first. "

That will make it so easy for me to trust your bank.

"The next generation of banking should start off as a data company. "

Why? Because so-called big data is "in"? How exactly does making my bank a data broker make it a better place to keep my money?

Hey, you know the old saying... if it ain't broke, fix it with data.

<comment><AUTHOR> <sarcasm> Thanks for reading the blog post </sarcasm>

I'm not arguing in "Change for change's sake" What I'm saying is that when banks were conceived they had a simplistic and singular purpose (keeping physical money there because it was not practical to keep it all at your own house)

The reason I think we should be seeking a fundamental change in banking is that we're not literally having to store gold(or even that much cash) in bank vaults these days.

Most money is moved in a non-material sense(which is why the reference to data)

"Why? Because so-called big data is "in"?" No. Because moving money is moving data, and simply put the information that allows you to move money lives online, it IS data. The kinds of things that can be stolen or leaked from any provider can allow almost anyone to spend your money like its theirs and they don't have to walk into a retail bank to do it.

This is why banks are fundamentally data problems at this point.

So while I appreciate your opinion I would relegate your opinion to banking not being broken back to a pre-2007 world where smartphones did not exist.

Was communication broken? YES Did people not realize it? ABSOLUTELY ... just because you don't see it at first sight doesn't mean it does not exist.

Let's think outside the box a bit. that's where true innovation is bred.

<comment><USER2> Then why didn't you put that in your post? It certainly wasn't obvious from your article or the one you linked to.

If you do start your own bank, you'll have to explain to customers what's wrong with the current banking system. Start elaborating the problems now.

</comment></comment></comment><comment><USER3> Time to break out one of my pet peeves: Inactive account fees.

If I stick money in a bank account and just leave it there, does that cost the bank money? No. (Transactions cost the bank money; non-transactions don't.) The inactive account fee looks a lot like "If you're not looking, we'll see if we can take some of your money". It would be quite reasonable to look on that as stealing.

</comment><comment><USER4> Damn right! And good post!

<comment><AUTHOR> Thanks! Always nice to know someone reads them :)

</comment></comment><comment><USER4> Damn right!</comment>


Nonprofit Community Stands Together to Protect .ORG - <AUTHOR> https://www.eff.org/deeplinks/2019/11/nonprofit-community-stands-together-protect-org <comment><USER2> The main thread is [https://news.ycombinator.com/item?id=21611677](https://news.ycombinator.com/item?id=21611677), and this post is also discussed there.</comment>


Las Vegas Shooting Kills More Than 50 - <AUTHOR> https://www.nytimes.com/2017/10/02/us/las-vegas-shooting.html?mcubz=1 <comment><USER2> What does it take for something to be done about these mass shootings that just keep happening?

<comment><USER3> Courage. If nothing happened after Sandy Hook, nothing will happen unless someone really decides that enough is enough.

<comment><USER4> But what exactly is enough? Unless we have a solution to this horrendous problem, the current state of affairs will not subside. Just shouting "ban assult rifles" will not solve the problem. We need an elaborte plan reasoned by principle rather than by analogy.

<comment><USER3> >But what exactly is enough? For the rest of the world, a couple of shootings. For USA, apparently nothing.

</comment></comment></comment></comment><comment><USER4> We need to fall to this matter yarely, else we are unraveld. Such acts of terror are not bound by: " type of weapon", "nationality", "circumstances", etc. Instead of aiming our efforts and resources at the "wrong solutions", I belive we need to ask first the right questions. We need to boil things down to its most fundamental truths, and reason up from there.

</comment><comment><USER5> Social engineer here. As a 64yo retired accountant with no military experience, terrorist connection or even police record, Stephen Paddock makes a most unconvincing suspect. All the false/diversive phonecalls (which is the primary causal factor of the high kill count) and ten ($20,000+) automatic weapons are much more suspicious than any possible motives regarding the 2012 property liability suit against Cosmopolitan Resorts or ongoing divorce. The only other relevant information are a 2003 single engine pilots license and an Alaska hunting license. Again, both unconvincing. I'm left wondering who made all the diversive calls?

</comment><comment><USER6> Why is this flagged?

<comment><USER7> For better or worse, it's not hacker news.

(Like usual, though, I knew how to get here via search, since I knew the discussion would exist despite being flagged off the home page.)

</comment></comment><comment><USER8> America wants it like that. Accept it and move on. _shrug_

<comment><USER7> Without trivializing the grief surrounding the victims here, it really is as simple as that.

Tragic, but apparently as American as apple pie. And honestly, that's the bigger (moral) tragedy here, which is depressing enough that I don't even want to think about it.</comment></comment>


Learning human objectives by evaluating hypothetical behaviours - <AUTHOR> https://deepmind.com/blog/article/learning-human-objectives-by-evaluating-hypothetical-behaviours <comment><USER2> These systems (large, automated, computer-controlled, and capable of unsafe states) should be trained in such a way as to leverage each others' knowledge.

E.g., each _brand_ of auto-auto (self-driving car) should share information with the others in re: safety and unexpected conditions. This should happen in (near-)real-time.</comment>


Anonymous allegedly hacked Romney tax records - <AUTHOR> http://nashvillecitypaper.com/content/city-news/anonymous-group-allegedly-hacked-romney-tax-records-franklin-firm

<comment><USER2> The hacker activist group named Anonymous is not involved in this claim.

But rather the statement comes from an anonymous group claiming to have stolen digital copies of the records.

</comment><comment><USER3> I don't understand why they made this a public posting. Romney isn't incentivized to pay up once the blackmail is public knowledge -- payment is equivalent to admitting guilt. Might as well keep your money and take the hits.

I don't see any situations where this beats contacting the campaign privately, with a document or two in hand to prove that you have the real stuff.

Unless, of course, if this is just a stunt that someone is running on the off chance that anyone is stupid enough to actually pay the money.

<comment><USER4> This isn't about getting Romney to pay, it's about getting some suckers to send a little money to the addresses on their own. Here's the balance for the "stop release" account [https://blockchain.info/address/1HeF89wMjC48bWNgWvVo7Wu3RaLW...](https://blockchain.info/address/1HeF89wMjC48bWNgWvVo7Wu3RaLW8XVsE8) and the "promote release" account [https://blockchain.info/address/12AP6iCwRNFQqKLStH3A4b4hw3SL...](https://blockchain.info/address/12AP6iCwRNFQqKLStH3A4b4hw3SL6RaNgB)

<comment><USER5> Someone was sending "binary" (10101) amounts of bitcoins to the address, to spell out an imgur link as a joke.

<comment><USER4> What's the link?

<comment><USER6> This is what I got:

imgur.com/5k37g

<comment><USER4> ...I don't get it. I mean it's funny that someone is using the BTC chain for communications :) But does that image mean anything?

<comment><USER7> Maybe there's a message encoded in the image as some sort of double- steganography.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> What I find interesting is the future(or current) possibility of political opponents hacking each other and then blaming it on "Anonymous" or entrepreneurial hackers. Or heck, infiltrate companies that do business with the political opponent and then blame "hackers" who don't exist.

<comment><USER9> So Watergate?

<http://en.wikipedia.org/wiki/Watergate_scandal>

</comment></comment><comment><USER10> Some of us developers have been working on the rehabilitation of the term "hack" and "hacker" (Hacker News anyone). The various Anonymous/LulzSec attacks of the last few years have been amusing and most have not been directly attacked individuals or been extortive (however, they've still been illegal, and I have not agreed with them).

Although a politician, Mitt Romney is still a person. No one has rights to his personal information he has not decided to share.

This attack is despicable.

<comment><USER11> "No one has rights to his personal information he has not decided to share. This attack is despicable."

You realize Mitt Romney is campaigning for the office that is the single worst violator of that philosophy in the world, right? Don't get me wrong, I generally think law enforcement _should_ have privileged access to private data, but you disrespect your philosophical position by pretending to apply it in a manner where the outcome is predetermined through uneven application.

<comment><USER7> _the office that is the single worst violator of that philosophy in the world, right?_

The president of the United States takes an oath to defend the constitution. Sure, some do it better than others, but I can think of a dozen worse violators of getting personal information that people have decided not to share.

</comment></comment></comment><comment><USER12> The ransom note has pretty specific language:

"Romney's 1040 tax returns were taken from the PWC office 8/25/2012 by gaining access to the third floor via a gentleman working on the 3rd floor of the building. Once on the 3rd floor, the team moved down the stairs to the 2nd floor and setup shop in an empty office room. During the night, suite 260 was entered, and all available 1040 tax forms for Romney were copied."

Anyone at PwC will instantly know if this is true or not. My guess is that the specifics will check out (why else include them?) and give credibility to the claim.

But even if those specifics are true, how will anyone know that they _really_ have the returns? Maybe they just figured out where the returns were stored and are trying to force someone else's hand.

<comment><USER13> By taking a line item deduction and making it public to the penny. Unequivocal confirmation.

<comment><USER12> Good point, that would be the 'proof of life' in this case (at least for Romney and PwC).

</comment></comment></comment><comment><USER14> Damn. Who knows if this is legit, but assassination markets are coming, it's only a matter of time. Obviously it won't start with ACTUAL assassinations-- but hide your data, hide your mistresses.

If abused assistants and underpaid file clerks ever realize they can make 100x their salary by leaking data with a bounty there is going to be a culture changing shit-storm.

<comment><USER15> Not really. The file clerks and assistants in question would have to do far more than simply "realize" that they can leak data.

They would have to magically acquire the expertise to leak it untraceably, to handle all the financial arrangements untraceably, and not get caught in any other ways. Meanwhile, the most powerful people in the world will be going after them.

This is already an extremely difficult proposition, and will only get more difficult with time.

</comment></comment><comment><USER16> There is an important piece to this story that is missing from all the current news articles: a different earlier post on pastebin, dated 9/2, did _not_ make mention of any kind of ransom:

<http://pastebin.com/zdU1TK40>

That earlier post simply said "The group will release all available files to the public on the 28 of September, 2012."

That says to me that a second group saw the original post and decided to try and make some money off it as a scam. Of course it's also possible that they just changed their minds over the weekend.

I'm not sure what either scenario says about the likelihood that this is real, but it definitely makes things more interesting. It's also worth noting that PWC is currently saying they have seen no signs that any data was taken.

</comment><comment><USER17> What if it's all a scheme to drive up the value of bitcoin via speculation?

Increased attention to the currency will have some bidding up the price, so anyone just holding bitcoin could profit, even if without 1 coin being sent to either address.

Of course, if someone did try to make the payment and purchase a million bucks of bitcoins, that would drive the price sky high.

<comment><USER18> My first thought is that it would do the opposite: increase political pressure on Bitcoin so that it may become more difficult to use (legally). This would drive down the price since many buyers are speculating on Bitcoin becoming more mainstream one day.

</comment></comment><comment><USER19> They've provided no real proof that they actually have the tax returns. I'd be surprised if this is genuine.

<comment><USER20> If it is genuine, then the Romney campaign has proof.

<comment><USER21> If it is genuine, I don't know why they think they'll get away with it.

Also $1M is way too low of an amount to blackmail Romney for. Talk about selling yourself short.

<comment><USER22> Eh, I'm not sure. It's pretty clear what's in Romney's returns at this point (a lower than average income tax rate, though it's hard to say whether it's closer to 5% or 15%), so I don't see a huge downside risk for him in them being released. If they upped their demands to, say $10 million, we're talking about real money, even for Mitt. Enough to get an extra percent of the vote or so in a moderate sized state. Unless there's something genuinely illegal in the returns, a couple days of renewed interest in them might be preferable to giving up a bit of money at the margin (though, paid media is fairly well saturated now, so it might not be that useful).

From Romney's point of view, too, there'd be no guarantee that paying 10 million would prevent them from being released. There's no accountability for the Anonymous. With 1 million, though, it's just a no brainer.

That said, I doubt they have anything. Reeks of BS to me.

<comment><USER23> A quick point and a theory:

First, it's not true that the average American pays 15% in income taxes. An typical family in the middle of the income spectrum pays about 5.6%.[1]

As far as Romney's returns go, I have a hunch that the political problems wouldn't be in the numbers, but in something like his charitable giving, of which there's an awful lot. What if one of the church programs he gave to turns out to have had some politically incorrect pamphlets, for example? Suddenly he'd be in a position to have to defend everyone he'd ever given $1 (or more likely, $10,000).

[1] [http://www.cbpp.org/cms/index.cfm?fa=view&id=3151](http://www.cbpp.org/cms/index.cfm?fa=view&id=3151)

<comment><USER22> I misspoke: it's not that Romney pays a lower average income tax rate, but pays a lower average federal tax rate, including payroll. For most people, income taxes make up a negligible part of that total tax burden.

I doubt the charitable giving would be a problem, and I'm also skeptical of the "Romney took a tax amnesty in 2009" theory. At this point I think it's mostly bull-headedness: Romney thinks no one has a right to see his private financial information, and he's sticking by that, come hell or high water.

<comment><USER23> _For most people, income taxes make up a negligible part of that total tax burden._

Ignoring the employer "contribution" sleight-of-hand, payroll taxes in 2012 are 4.2% SS + 1.45% Medicare, or 5.65%. Adding in the income tax burden, and you're still looking at a total Federal tax burden of under 12%.

<comment><USER20> You're missing the point. If you spend most of what you earn, that's an additiona 10% (in my state) on sales tax.

Most very wealthy don't spend nearly what they earn, so the effect of sales tax is negligible.

<comment><USER23> How am I missing the point? First the claim was that Mitt Romney pays a "lower than average income tax rate", which is demonstrably untrue.

Then the claim was that he pays a "lower than average Federal tax burden" and that the income tax as a burden on the average American was "negligible" relative to their payroll tax burden. I didn't even bring up the fact that Bain pays corporate income taxes on its profits before they're disbursed to owners like Romney. Even discounting that, the average person's Federal tax burden is _still_ lower than Romney's, assuming he's being truthful when he says his income rate was never lower than 13%. And the average American's income tax burden is not "negligible" relative to the payroll tax burden: it's about 50/50.

Now you're trying to bring state taxes into it. Guess what: Romney makes most of his money off of capital gains and is a Massachusetts resident, where long term capital gains are taxed at 5.3%.

Yes, Romney could "afford" a much greater tax burden. He could "afford" a tax burden of 95% and still live comfortably. That's not an argument (or at least a good one) for such a thing. It's also not the point under debate (that somehow the rate of taxes he pays is lower than the average American's).

<comment><USER22> You're speaking inaccurately. People in the middle 20% paid an effective rate of 15.5 percent. And trying to add in corporate tax rates is a bit-too-clever slight of hand.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> title didn't convey the content of the article, or why it would be of interest to HN. I thought it was political stuff at first vs tech news.

A better title might be:

Anonymous' steals Romney's tax return for blackmail extortion

<comment><USER25> Actually, I think the thieves are anonymous in that they aren't known yet, not "Anonymous" the hacker group.

<comment><USER26> If that's the case then "anonymous" shouldn't be used as a noun.

</comment></comment></comment><comment><USER27> This kind of stuff has the potential to be so much fun, but always ends up being so boring.

Remember when a 4chan user hacked into Sarah Palin's not-public-record Yahoo! Mail account and managed to post screenshots to /b/? But then the user totally failed to publicly archive the mail? And somehow _got caught_? Total disappointment.

</comment><comment><USER28> Pastebin: <http://pastebin.com/1j1yzQ9S>

I'm not very familiar with the Bitcoin protocol: Can all users view the values of these two bitcoin accounts -- or BTC in transit?

<comment><USER29> Yes, the transactions to and from these accounts are available here:

Stop release: [https://blockchain.info/address/1HeF89wMjC48bWNgWvVo7Wu3RaLW...](https://blockchain.info/address/1HeF89wMjC48bWNgWvVo7Wu3RaLW8XVsE8)

Full release: [https://blockchain.info/address/12AP6iCwRNFQqKLStH3A4b4hw3SL...](https://blockchain.info/address/12AP6iCwRNFQqKLStH3A4b4hw3SL6RaNgB)

<comment><USER17> Those amounts that look like 8 bits of binary are interesting, but don't seem to convert to meaningful ascii.

That would have been fun.

<comment><USER30> It actually is ASCII data (byte == binary_btc_amount * 256), spelling the string '<http://i.imgur.com/5k6Rf.png>.

This PNG image is a QR code, which decodes to the string '01101000011101000111010001110000001110100010111100101111011010010010111001101001 01101101011001110111010101110010001011100110001101101111011011010010111101101001' (newline added for layout, not actually present).

This, in turn, is a binary ASCII encoding of the string '<http://i.imgur.com/i>. But that's a 404 page, so this whole thing seems a bit futile.

FWIW, the PNG file coincides exactly with the one generated by <http://qrcode.kaywa.com/> for the binary string.

<comment><USER30> And the second Bitcoin account contains the ASCII string 'prove it', in forward chronological order. The imgur string was in backward order.

<comment><USER16> In the case of the "allow release" bitcoin account, clearly someone is sending a message to the perpetuators saying "prove that you actually have the documents".

In the case of the "stop release", a different person likely sent a message as a joke, but didn't realize that the QR code couldn't handle the number of bits for the full imgur url, and it was truncated as a result to the "/i".

<comment><USER30> You're absolutely right about the truncation, the text is exactly 160 characters long, and the QR code generator used silently truncates the clipboard contents, so that it's very likely that the person was unaware that some characters were missing.

Any volunteers for sending a Bitcoin message to tell these guys that they messed up? :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER31> KARL ROVE ALERT! This is a very similar in spirit to past tactics alleged against Karl Rove. This enables Romney to dodge the Tax issue by having it release this way and have all the focus pointed toward an "anonymous" group. Don't fall for this!

<comment><USER31> I wonder why this one was down voted? Think about the timing, releasing this during DNC.

Think about the nature of the alleged hack, so unprecedented. Think about the random process, this has never happened before.

All these combined and hearing alleged doggy practice of Karl rove in the past can leade you to conclude the shady motivations behind this

</comment></comment><comment><USER32> Is it safe to accept a ransom via BitCoin? Theoretically how might they be caught?

<comment><USER33> If the people accepting the Bitcoins for ransom own the Silk Road? Let's face it, all Bitcoins eventually end up on the Silk Road.

</comment></comment><comment><USER2> PricewaterhouseCoopers PR managing director Chris Atkins says: "We are aware of the allegations that have been made regarding improper access to our systems. We are working closely with the United States Secret Service, and at this time there is no evidence that our systems have been compromised or that there was any unauthorized access to the data in question."

See <http://news.ycombinator.com/item?id=4481292>

</comment><comment><USER34> It seems likely this is just a scam to get random Romney and Obama supports to send Bitcoins to the scammer.

</comment><comment><USER35> Now if only they could steal Obama's college transcripts he's paid over a million dollars to keep sealed...

<comment><USER36> Equally relevant!

<comment><USER37> Point taken, but I'd be happy if candidates just released both sorts of information and weren't so afraid of being transparent.

<comment><USER38> Is it normal to release educational transcripts? I thought taxes were pretty much a given, but not so with college transcripts.

Also the OPs assertion of paying 1 million dollars to hide Obama's transcripts is so ridiculous on its face I'm surprised people willingly post things like that online.

<comment><USER39> Fun fact, we have Romney's 2010 and 2011 tax returns. McCain only provided two years of returns too when he was running. It's not a hard-precedent to provide "everything you have", either tax records or birth certificates or transcripts or letters of recommendation... But looking at it from a politician's perspective: if it can only help you, fine, release it. Otherwise why bother? Unless the damage from not releasing exceeds the damage from releasing (which I think is becoming the case for Romney), it's just unnecessary information.

<comment><USER38> I thought we had his 2010 returns and an estimation of his 2011 returns?

</comment></comment></comment></comment></comment></comment><comment><USER40> I'm calling their bluff, sounds very much like a scam to get money off people who fall for it.

</comment><comment><USER41> This is quite clever; it seems it is possible that all three groups could possibly pay.

Would they be able to remove that amount of money from the bitcoin system without affecting the conversion rate substantially, or is this loss near negligible?

</comment><comment><USER42> It is fascinating that none of the major news outlets seems to have reported this as of yet.

</comment><comment><USER43> Surely if it's true he needs to release his tax records and play "Don't give in to criminals". Might even make him look good / a victim.

The chance of seeing the inside of a jail massively outweighs the chance of these guys getting any money...

</comment><comment><USER44> They need to release a few random line items as proof, otherwise it's a nice scam.

</comment><comment><USER45> [http://www.freewoodpost.com/2012/07/28/anonymous-hacks- irs-d...](http://www.freewoodpost.com/2012/07/28/anonymous-hacks-irs-database- publishes-romney-tax-returns/)

<comment><USER46> To spare everyone the trouble: unrelated satire from months ago.

</comment></comment><comment><USER47> I thought there was supposed to be an effort to ensure accuracy in posting titles--Anonymous didn't have a damn thing to do with this.

</comment><comment><USER48> Kind of a coincidence this comes out right after the FBI Apple hack. Looks like someone wants everyone to look the other way.

</comment><comment><USER34> "anonymous group" not THE "Anonymous"

<comment><USER49> Isn't the point of the name supposed to be that anyone can be THE Anonymous?

<comment><USER50> If you claim to be Anonymous, you get to be Anonymous.

If you act anonymously, you're just being anonymous.

</comment></comment></comment><comment><USER51> 1 Million USD = 93,000 BTC at an exchange rate of ~$10.70

</comment><comment><USER52> Can this be considered terrorism? Surely, blackmail, but also terrorism? Just curious.

edit: Since I received record fast downvotes, I'll clarify that this is not meant to be a political comment, jesus.

<comment><USER53> If you want to dilute what the words means to the point it can mean just about any crime, sure. But if you're referring to the strict term, then no.

<comment><USER52> >the systematic use of terror, especially as a means of coercion

Which word am I diluting exactly? If Romney is as afraid of releasing his taxes as many imply, would he not be fearful of their release?

edit2: thanks for the replies, I think I understand why y'all disagree and I think that I agree with you. It's not systematic and it's not being used to intimidate others, it's too focused, basically.

<comment><USER7> Part of the idea of terrorism (and hate crimes, for that matter) is that the victims aren't just the ones immediately impacted, but other people as well. The aim of terrorism is to create a climate of fear in those who live. I will always remember the first time I flew on an airplane after September 11, 2001.

I strongly doubt that this act was designed to strike fear into the hearts of all of the _other_ fabulously wealthy presidential candidates who refuse to disclose their tax returns.</comment></comment></comment></comment>


Emirp Primes - <AUTHOR> https://en.wikipedia.org/wiki/Emirp <comment><USER2> Is this sort of toying with numbers just for fun, or does it in fact reveal something interesting about primes or mathematics in general?

<comment><USER3> Sounds like just a bit of fun to me. For one, emirp-hood depends on the number base, which means it's not intrinsic to the number, but depends on some arbitrary choice of representation. Generally, things like that don't indicate anything deep.

</comment></comment><comment><USER4> What's so special about base 10 other than that it's the number of fingers that humans (usually) have?

<comment><USER5> I do also find the amount of recreational math focused on base 10 to be disproportionate to the interestingness of base 10.

<comment><USER6> Come on, mate, don't tease me with that and not offer your suggestions!

Fractional bases, negative bases, negative fractional bases, base e (supposed to be optimal IIRC), perhaps complex bases, summat weirder?

<comment><USER5> The one true number base: [https://en.m.wikipedia.org/wiki/Quater- imaginary_base](https://en.m.wikipedia.org/wiki/Quater-imaginary_base)

</comment></comment></comment></comment><comment><USER7> Is there a better way to check for an emirp other than checking if the number is prime, and then checking if its reverse is also prime?

<comment><USER8> I can think of a couple of things off the top of my head:

\- You can reject numbers that start with 2,4,5,6 or 8 since their reverse won't be prime.

\- If you're searching through a range of numbers for emirps avoid checking for the same pair twice. For example if you start at 1 and check for emirps, by the time you're checking 311 you've already checked 113 so you don't need to check 311.

</comment></comment><comment><USER9> Proposal to define "primemirp" as a prime that is also a palindrome.

<comment><USER10> Looks like those are already called "palprimes" [0].

[0] [https://en.wikipedia.org/wiki/Palindromic_prime](https://en.wikipedia.org/wiki/Palindromic_prime)</comment></comment>


Ask HN: Am I searching for jobs wrong? - <AUTHOR> Hi peeps:
I'm a senior in college (graduating in about a month) and I still haven't managed to get a full-time position. I'm starting to become confused to what areas I need to work on.
First, I thought my resume was bad, but then I got interviews at most places I applied to, so that's good. Then I wasn't getting through the first phone interviews. I developed myself some more and now I'm getting onsite interviews, but still no offers. Clearly with this trajectory I should become employed soon, but I'm wondering what I am doing wrong.
I'm applying mainly to places I see on Hacker News, is this a mistake (they don't hire junior developers) or do I just need more experience (I had a late interest in computer science and blasted through the entire major in 3 semesters)? I'm starting to wonder if I will get a job by the time I graduate. If I don't will this hurt my long term career prospects?
My email is in my profile, so if you would like to help out email me and I will give you a copy of my resume for your review. Also, if you're an employer looking for a junior developer please email me, I have 2 internships and several projects under my belt. <comment><USER2> One piece of advice I like to tell people when interviewing: make it a point when you are at the "are there any questions" phase to take the bull by the horns.

Let the interviewer know that you are interested in _their_ company. One of the biggest mistakes I see is people letting on the fact that they are interviewing at multiple places.

Mention things about their culture that might be a little harder to find out. Bonus points for casual name dropping of blogs you read from the company blog etc.

lastly make sure to let them know this is the company you want to work for, and really do not want to work anywhere else.

<comment><USER3> I agree with letting the interview know you are interested in their company. Inquisitiveness is a key character trait we look for and asking intelligent follow up questions is a great sign rather than someone that has just thought of a list of pre-canned questions beforehand and is going down them.

But I wouldn't view letting on about other interviews a major problem -- knowing there is some competition both ways isn't a bad thing. I want great candidates to work for us, but I also know great candidates have choices.

</comment></comment><comment><USER4> Few thoughts:

1\. Don't fret about not getting offers, especially since you're just getting your start. It can take a while. The important thing is that you're getting the interviews; this makes it a lot easier figuring out how to adjust your strategy.

2\. Your long term career prospects won't be hurt if you don't get a job right out of college. If this were the case, changing careers wouldn't be a normal thing.

3\. Don't limit yourself to just companies you see on HN, there's plenty of startups that are't on HN's radar for numerous reasons. A few suggestions on where else to look:

\- Reddit. Our company has found several quality candidates by posting in the appropriate subreddits.

\- Recruiters. They'll be good about giving you feedback to help you refine your approach.

\- Other online startup communities. Here in Chicago, we have builtinchicago.org, your locale may have something similar.

\- Venture Capitalist Websites. Some VCs have recruiters to help source talent, but at the very least, you'll probably be able to get some leads by browsing their portfolio of companies.

As far as resume feedback, I'll point you to a comment I left earlier this week for another individual asking similar questions. While my feedback there is more tailored to his situation, you may find some value in the thoughts I shared: [https://news.ycombinator.com/item?id=9450177](https://news.ycombinator.com/item?id=9450177)

</comment><comment><USER5> It'll help to separate the two problems:

1\. Getting enough interviews 2\. Clearing them

From my experience ([http://InterviewKickstart.com](http://InterviewKickstart.com)), if you go to 5-6 onsite interviews and still don't clear any of them, then you have the second problem. But until you do/get 5-6, you should focus on the first one.

If you are not clearing onsite interviews, then what you need is a video- recorded technical mock interview with someone knowledgeable. Then dissect that video interview with a 2nd knowledgeable person, who will be able to point a finger on the problem, if there is one.

Good luck!

</comment><comment><USER6> Couple of my thoughts. 1\. Don't forget the power of volume. Use all job searching channel available online and offline. 2\. Freelancing site is always a good options if you are building your portfolios if you have time. 3\. Maximize all your network. Think creative how you can reach the contact you need. Go to places recruiters hangout. Linkedin Group is also a good place to find those people. 4\. Most important part, be able to answer the questions "How can I help your company/How can I help you make more money", bottomline is if you can bring value to a company that can justify the cost of hiring you, there is no reason they won't hire you (Usually salary (eg. 50,000) should equal to 1/5 (250,000) to 1/10 (500,000) of your productivity)

</comment><comment><USER7> >I'm starting to become confused to what areas I need to work on.

Some unconventional advice-- understand that your job search is really a sales & marketing process. Recommend reading Gitomer's Little Red Book of Selling to help frame your approach. There's great advice on why people buy (hire), prospecting, networking, elevator pitches, and handling objections.

Reading this book will put you far ahead of your peers-- and will have career- long applications > [http://www.goodreads.com/book/show/75890.Little_Red_Book_of_...](http://www.goodreads.com/book/show/75890.Little_Red_Book_of_Selling)

</comment><comment><USER8> You should definitely diversify your job search, as most HN jobs are not geared towards junior developers. Generally-speaking, young start-ups' first hires will need to have at least a few years of real world engineering experience.

Don't worry about interviewing yet, sounds like you're doing OK on that front - really, just get your resume to other companies because being too picky may backfire.</comment>


Study: iOS Apps Crash More Frequently Than Android Apps - <AUTHOR> http://digitizor.com/2012/02/03/ios-android-crash/

<comment><USER2> I haven't developed much for Android but when I get a bug/fault in an iOS app, the stack trace is cryptic as heck. When it shows me what line is causing the issue, it goes to main.m, which is unhelpful to say the least. Is is the same for Android development?</comment>


Great Engineering Quotes - <AUTHOR> http://odetocode.com/Blogs/scott/archive/2011/01/30/great-engineering-quotes.aspx <comment><USER2> You know when I read pieces like this, I really really feel so insignficant (not in a bad way). I mean what does it actually feel like to be in the shoes of such awesome folk? Their thought processes are so unlike normal people. And yet there is a certain humility to them. aaaaaaaaah. brain exploding just being unable to fathom that whole other realm of brilliance! Even coming up with something like "thinking about the future because Il be spending about the rest of my life in it"... sounds so casual and "obvious"! yet so profound...

Edit: Sorry that was a bit out of place I think. The "piece" I was referring to was actually [http://www.pbs.org/wgbh/amex/streamliners/peopleevents/p_ket...](http://www.pbs.org/wgbh/amex/streamliners/peopleevents/p_kettering.html), which I came about by googling Kettering.

</comment><comment><USER3> My favorite:

I wanted to invent an engine that could run for ever. I could have developed a new train, had I stayed in the railway. It would have looked like the AK-47 though. -Mikhail Kalashnikov

</comment><comment><USER4> A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. \- Douglas Adams

</comment><comment><USER5> Some committees are pretty awesome. Haskell.</comment>


What is your hourly rate (Ror, Europe)? - <AUTHOR> I have been freelancing since a while and noticed that my hourly rate differs quite a bit. Say from €50/hour to €110/hour.
Usually I let my gut feeling set the rate when quoting clients. But I'm a bit afraid that this is not the best way to go. So what is your hourly rate and how do you set it?
About me: 6+ years of ruby/ruby on rails experience, I know how to build and deliver. <comment><USER2> I am not a developer, but have worked with many freelancers. I would abandon the €50/hour projects and use that time to find more €110/hour projects.

There is no set rule for pricing your services as a freelancer, only what you can convince the client to pay. Don't be afraid to over-reach and miss out on a few deals.

<comment><AUTHOR> How did you decide or freelancers you were dealing with over-priced?

<comment><USER2> The cost of not delivering a product on time usually far exceeds whatever a company would pay a freelancer. As an entrepreneur this means price almost always takes a backseat to reliability. Showing that you can deliver amazing code on schedule with minimal oversight, usually through showing past projects and getting good referrals from previous clients, is the most important thing.

Once you've done that you have a lot more flexibility in pricing.

Keep in mind that price is also a subconscious determinant of quality. If your rate is 110 EUR per hour, a certain number of clients will assume that it is so for good reason.

</comment></comment></comment><comment><USER3> This is a topic I'm really interested. Hoping that there would be more replies!

This will be a long post but if you have anything to say, please comment.

Here is my story;

I have more than 7 years of experience on programming, I started at 16 years old with PHP. I have a degree on computer engineering. I have 4 years of Rails experience, 1,5 years professionally. I have a good portfolio of projects I was part of, some of them are open-source.

Also, I'm doing mentorship and training on pair-programming platforms(HackHands, Codementor, AirPair) and I have dozens of happy clients and reviews from them on there.

I started freelancing 6 months ago at $55(€50)/hr and I thought I was getting overpaid because I was seeing that people are getting $20-$30/hr. But my client was really happy and I delivered everything they needed.

I believe the way getting good clients is through networking not platforms like Upwork or Freelancer. My first client reached me through Reddit. But the thing is I live in a 3rd world country and its hard to get high paid clients here.

I've talked with a talented developer who is at Toptal, and he said he is working at $30/hr and rates are generally around $30-$40/hr. Toptal says; 'Hire the top 3%' and they are paying $30/hr to top talented people!

So seeing that people are working $100-$200/hr sounds crazy to me after all this.

Now I have a gig at $35/hr which I really don't want to work on because I think I'm underpaid, but it's the only one I have and I'm struggling to find a new client.

</comment><comment><USER4> I just started freelancing a few months ago. I mostly "advertise" as working for €75/hour, but for longer term projects this can go lower.

</comment><comment><USER5> pay yourself first and choose the 110 an hour rate. You have a limited lifetime on this Earth.</comment>


Ask YC: Getting started with smartphone hacking - <AUTHOR>

What is the best smartphone to buy to start hacking with? I'd like to make use of GPS / internet / camera capability. I would prefer to keep my phone bill under $50 / month. In US is it possible to use any phone with any carrier?  Which carriers / phones / OSes support open development of applications? Thanks. <comment><USER2> Platforms that support open development:

\- Symbian (Nokia S60/Sony-Ericsson UIQ) \- Windows Mobile (various flavours thereof) \- Android (No real hardware yet available) \- Non-Native development (J2ME et al.)

The best way to get started would be to download an SDK for one of these environments. They all come with emulators, so you can start playing around with writing apps without any investment in hardware.

I'm not from the USA, but I've spent most of my working life in the mobile industry so I believe I know what I'm talking about. In the USA, only certain places have GSM networks. This includes most of the major cities, San Fran, New York, Atlanta, LA, etc. Pretty much any Smart Phone you can buy is a GSM phone. There are a few exceptions, some of the older Palm phones were CDMA, but Palm is essentially dead now. Before you buy a new phone, just make sure your current network is a GSM network. While I understand it isn't a terribly common thing to do in the US, most developers will buy development phones unlocked direct from the manufacturer (or a reseller) and put a SIM they already own in it. In the UK, you are pretty much drowing in SIM cards. Both Orange and O2 give away pay as you talk SIM cards on a regular basis online, and I tend to grab as many as I can on each occasion, since they tend to get deactivated after a while because they sit in various of my phones not getting topped up.

As for what phone to buy, wanting GPS limits you a little. I'd recommend the Nokia N95 8GB as a good start. It's a Symbian S60 phone with built in GPS and WiFi.</comment>


Chart: Victims of Terrorist Attacks in Western Europe - <AUTHOR> https://www.statista.com/chart/4093/people-killed-by-terrorist-attacks-in-western-europe-since-1970/ <comment><USER2> The UK had over 350 deaths in one year alone! Really reminds one what the UK was dealing with during the height of the conflicts in Northern Ireland.

Also helps me at least understand why the UK feels a little more fortress like (cameras everywhere, very strong intelligence services, my fellow Brits also seem quite supportive of surveillance measures). They've been dealing with terrorism for 40+ years. Just as I noticed a massive shift in mood visiting the US pre-9/11 vs post 9/11 I wonder what the national mood was like in the UK before the violence spiralled.

</comment><comment><USER3> "Why does it look like the level of fear in Western Europe is so much higher today than in the 1970s and 1980s?" I can only answer for Germany, but I doubt the level of fear was lower at the height of the RAF in the 70s/80s. There were fewer deaths than in, say, Paris, and the attacks were concentrated mostly at businessmen and politicians. Yet there was a very widespread fear in the late 70s and early 80s, and pretty desperate measures as well (google "Berufsverbot" \- people in communist parties were forbidden to work in certain professions).</comment>