A Secret Weapon for Startups – Functional Programming? - <AUTHOR> https://www.ramanan.com/personal-blog/2019/2/25/functional-programming-and-venture-capital <comment><USER3> I would say the main competitive advantage of using functional programming, or Haskell in this case, is that it's a relatively inexpensive benefit you can offer to employees (the cost is in rolling your own version of sorely needed tooling/ecosystem stuff once you reach sufficient size) and lets you tap into a pond where even a small fish can feel big.

For scalability, I disagree with the author. Being functional does not necessarily make you scale better. The one hot backend paradigm that is easiest to scale is to write stateless, containerized microservices. Functional programming will nudge you in the right direction of writing stateless code but isn't strictly necessary.

It's kind of disappointing to hear functional programming cargo-culting from someone who admittedly doesn't really program much anymore. The software engineering industry already has enough resume driven development perpetuated by software engineers hyping things up to other software engineers

<comment><USER4> > The one hot backend paradigm that is easiest to scale is to write stateless, > containerized microservices. Functional programming will nudge you in the > right direction of writing stateless code but isn't strictly necessary.

Microservices force you to reduce your service interfaces to lowest common denominator. You simply can't build a really powerful system out of microservices with a reasonable amount of code, because there's no way to send complex structures across service boundaries; you end up spending more effort serializing and deserializing than actually doing business logic.

Functional programming lets you achieve the same isolation benefits as microservices without the overhead.

<comment><USER5> Why should serialization and deserialization be "effort"? Your data objects shouldn't be more complex than is trivially represented with JSON or else you have a different problem. Besides, while I'm not a microservices enthusiast, isolation isn't the main goal of microservices, it's being able to deploy, scale, and operate services independently from other teams.

<comment><USER4> > Your data objects shouldn't be more complex than is trivially represented > with JSON or else you have a different problem.

That's the whole problem I'm talking about. Like I said, it forces you to reduce all these interfaces to lowest common denominator.

> Besides, while I'm not a microservices enthusiast, isolation isn't the main > goal of microservices, it's being able to deploy, scale, and operate > services independently from other teams.

If you're just talking about each team having its own service, that's not what's usually meant by "microservices".

<comment><USER5> > That's the whole problem I'm talking about. Like I said, it forces you to > reduce all these interfaces to lowest common denominator.

I don't know what you mean by "lowest common denominator" or how "being forced to write good code" is inherently bad. There are lots of efficiencies to writing good code (easy to test, reuse, refactor, etc), not just writing microservices.

> If you're just talking about each team having its own service, that's not > what's usually meant by "microservices".

That may not be the definition but it's the principally cited advantage.

</comment></comment></comment></comment></comment><comment><USER6> I've recently interviewed at a startup that was into functional programming. The coding challenge was: transform a pair of an optional string and optional integer, into a optional pair of string and integer. My solution was to just check if the left and right optional where present before creating the pair out of them. The solution they suggested was this double nested flatMap lambda contraption. Functional programming is a fun intellectual pursuit, but sometimes I wonder if its better to get your "I am smart" fix by reading maths or physics in the evening, and just do the boring imperative stuff at work.

<comment><USER7> In Elixir I would enumerate the cases with four definitions of the same function. Four lines of code, done. It looks similar to what you did.

But I would tell them this is the simple and boring code I would run in production but probably not the smart code they want to see in the interview. Unfortunately smart code is often full of bugs and it costs more to deploy and maintain.

<comment><USER8> Why would you write four cases? You only care about _two_ of the cases.

</comment></comment></comment><comment><USER9> The article didn't quite say it, but there seems to be an additional bonus to using a less-popular language that attracts enthusiast programmers: you have special access to a pool of skilled programmers, because you're offering to pay them to use one of their favorite tools.

I'm imagining maybe ITA Software said something like, "We're going develop a new node in the legacy IBM mainframe airline reservation system network, from scratch." And the responses were something like, "One, that sounds impossible; two, why would I want to get into legacy mainframe systems." Then ITA said, "We think it can be done with Lisp." "Where do I sign?"

</comment><comment><USER10> There is nothing "secret" about these languages.

Everybody knows they exist, everybody knows they are better in certain respects, most companies prefer standard languages where it is easy to recruit standard-level talent for standard wages.

<comment><USER11> There's no proof really that above standard talent prefers or uses functional programming languages.

Indeed, this is a reductionist view, like saying the best engineers are those that use a specific tool, not those that have access to a broad body of engineering knowledge and real-world experience.

<comment> UK-AL I think it's because functional programming does take a bit more learning to get going with it.

That's because there are higher level abstractions like monads, bind, type classes etc

These take more time to learn but once you know they make modelling some problems much easier.

I do think a lot problems in programming come from businesses wanting everything to be easy to understand and to require little training and education.

As opposed to highly trained people who know their craft.

This as a business decision is fair enough. But you can't then complain your software is buggy or it takes to long to build something because you haven't built higher level abstractions. You made that decision.

</comment></comment></comment><comment><USER12> I sympathize with the romantic view of FP, and I'd say that the choice of language defines culture in companies I've worked in. I've hacked around with Haskell/snap and worked (as non developer) in a clojure shop and my impression is that functional languages are an expression of a culture that values a certain quality of thinking that is just not commodity today.

I suspect you can hold off imitators in an early stage company for a few extra months by giving the impression that there is a high cost/high risk aspect to your product, and it creates a foundation of quality reasoning about features.

However, I have also witnessed a culture clash a few times, where to build a business with investors, you need to scale up with commodity developer talent, and you lose the core team when you try to integrate them. Anecdotally, functional languages also tend to attract personalities who can be difficult to focus on products, which are to them just side effects of discovery. A company that depends on "geniuses," to run it is probably not a very sound business.

If I wanted to build a company positioned for linear growth over a 20 year horizon that was services heavy, in a specific niche like utilities or security, I would choose a functional language for the platform. If I wanted to position a company for exponential growth or integration/acquisition into another product family, I'd pick something with less friction around its cultural edges.

<comment><USER11> At the end of the day, what exceptional products have developers with this certain quality of thinking released?

It's more likely that this aura of cultured mystery is a self-defense against the hard truth that's been recognized by businesses for decades: programming language choice doesn't matter that much towards success OR implementation quality, with some exceptions.

When someone wraps so much of their self-worth in a programming concept, it would be painful indeed if it turned out that said concept is remarkable only in their bubble.

<comment> UK-AL I've definitely been companies where a bad code base basically destroyed the product because we couldn't move fast enough compared to the competition.

It usually happens on established products that have been around for a few years.

<comment><USER11> And did this happen because you chose a specific language?

There are really few languages that can sink a project and that too only happens they're used in a domain that's uncharacteristic for them. E.g: writing a web app in classic VB. Windows GUI app in VB would be fine.

<comment> UK-AL I think languages can definitely make things worse. Dynamic languages are harder to refactor using automated refactor tools.

In a code base with no tests, I'd rather start with something had a powerful type system.

But you are right that you make a mess in any language.

</comment></comment></comment></comment></comment><comment><USER13> Paul Graham convincingly made the case that not all programming languages are equal in terms of power. A more powerful language should be a competitive advantage all else being equal. Hence it makes sense to use one.

(Aside from functional programming, Ruby on Rails comes to mind even though it is a language and a framework.)

<comment><USER14> > convincingly

He wrote that article in 2001, eighteen years ago, and people haven't stopped bringing it up on HN since. So where are these startups crushing their opposition because they're using a more powerful language?

<comment> vincent-toups I can give at least one data point for a startup based on Common Lisp that crashed and burned at least in part _because_ of Common Lisp.

<comment><USER14> I bet that was really good fun, though!

<comment> vincent-toups It was a major strain on my marriage, among other shitty things.

</comment></comment></comment></comment></comment><comment><USER15> I would say a real secret weapon for startups would be C++. If your service/product is 10 to 20x faster than your competitors using mainly interpreted or GC languages... That extra bit of performance is something you can actually market and sell. Also extra performance allows you to do more stuff for the same time frame, so you can trade it off with more features. Write C++ in a modern, functional way and its a very productive language.

<comment><USER16> The performance gap between C++ and GC languages like Ocaml and Common Lisp is much smaller than 10x. Here's one example where Common Lisp yielded literally the same performance as C++: [https://m00natic.github.io/lisp/manual- jit.html#orgd043a43](https://m00natic.github.io/lisp/manual- jit.html#orgd043a43)

<comment><USER17> There's more than raw execution speed. There's footprint, which affects how soon you have to scale (hint: 100X sooner with GC/interpreted systems). There's latency which can be highly irregular in GC systems and can result in very confusing behavior/bugs.

Modern systems can remove lots of complexity and enable fast prototyping, which we are all aware of. But it comes with a cost, and that cost (e.g. having to deal with scaling much, much sooner) hits at a sensitive time in startup growth.

</comment></comment></comment><comment><USER18> I think lots of startups are prone to something similar to the "second version" problem.

They bring in a really good senior developer as a CTO. This person finally has the chance to set their mark and for once build the perfect setup, no legacy systems to take into consideration, no outdated corporate directives limiting languages or architecture. This time it's going to be perfect.

Other aspects tend to be forgotten:

\- The startup might not require a very sophisticated tech stack. Most of what needs to be built might be lots of html forms, user handling and a few other thing that can be done in any language.

\- They and up with a pretty advanced stack of best-for-the-job tools and languages that forces the company to compete with lots of other trendy startup for a very small pool of highly paid highly qualified developers.

\- Some tooling and functionality might have to be built from scratch compared to more widespread languages.

A healthy question to ask before picking a more specialized stack is "What do we really gain compared to building this on Ruby/Rails, Django/Phython or Symfony/PHP?"

</comment><comment><USER19> Programming languages are merely brushes with which to paint logic.

I'm going to level with you, the choice of language is a combination of luck, personality and circumstance. Nothing else. There is no hidden knowledge, font of programming youth, etc, etc,

Its like choosing a building material, when you want to make a house. Most people choose bricks. When used properly you can make many a wonderful, functional and innovative house.

In short you can do all of the things you want with any Turing complete language.

As for scaling, its mostly never down to the language, its almost always system design. Crucially its knowing when, where and how to store state. Does it need to be shared?, does it need to be consistent?, how can you partition? what stuff can you push out to static storage? None of those questions are answered by a language.

The stated scale (10million requests in a day) is roughly 120 requests a second. Most systems _should_ be able to handle that without costing the earth hosting wise. Hell, the API I look after can do 5000 concurrent requests, ~8000 requests a seconds using about 2.5 cores. That's in python without any real optimisation. Its not because python (or my skill) is awesome, its because CPUs are really really powerful now.

A skilled programmer could easily get 2-5X more performance, but it'd cost at least 5 years of hosting to get them in and optimise it.

TL;DR:

Its not the language, its the business plan and design that matters.

</comment><comment><USER20> It seems strange that no one has pointed out the PG essay making this claim (for Lisp) and then the latter discussions where he acknowledged it slowed Reddit's development down, and Aaron Swartz made the right choice switching it across to Python.

</comment><comment><USER21> After I had my fair share of trouble with JavaScript in production, I'm very willing to try ReasonML in my next projects.

I still love JS, but I'm not so sure anymore that it's for me.

</comment><comment><USER22> No matter if it is a secret weapon, most of the companies in the industry won't even try because current tool works - despite working well or not.

The major difference of the industry compared to 90s is everyone stop getting hyped by new ideas. In 90s there were companies keep re-writing from C to C++ then to Java recklessly.

Now everyone is 'smarter' \- stop worrying and love Java, forever.

And they have a famous quote for justifying being lazy: there is no sliver bullet.

</comment><comment><USER23> Scalability, safety and ease of refactoring are usually the exact problems you should NOT focus on in a startup. Development speed and easy prototyping are much more important and is better achieved by dynamic, multi-paradigm languages like Ruby, Python or JS. Choosing Haskell for a startup could easily be a form of premature optimization that would slow down development.

<comment><USER8> That is of course totally subjective. I run three businesses on Haskell, having previously been a mostly PHP, JavaScript, and Ruby developer, and having shipped many projects for startups with Ruby on Rails.

Anecdotally, I have been able to ship much more quickly and reliably with Haskell than I _ever_ could with Ruby/Rails.

</comment></comment><comment><USER24> It's very hard to build a real money-making business. The best language is the tool that gets you over the finish line. It's great to invest in new technologies. But, I have also seen many developers push technology without the business in mind, to satisfy intellectual curiousity or some self-serving desire to feel superior/smart.

<comment><USER8> Conversely, I've seen many businesses fail because their software is too unreliable. Better technology helps mitigate this.

</comment></comment><comment><USER25> Yes please. More functional programming, less OOP, or if OOP then less design patterns and if possible no documentation or tests.

I make a living from untangling poorly written code, and these would mean more work for me.

Oh please use an obscure or low traction programming language as well, preferably an archaic one.

<comment><USER26> OOP is usually what creates the tangled mess by its very nature.

<comment><USER25> Yup. And tests and documentation are just overhead.

<comment><USER5> > Yup. And tests and documentation are just overhead.

Why post here at all if you're just here to troll and start flame wars?

<comment><USER25> My intentions are neither to start flame wars, nor to troll, sorry if I came across that way.

I am being sarcastic against posts contrarian to common practice only for the sake of being contrarian, this being one.

If a current good practice is to write tests, there will be a post against writing tests. If a current good practice is to write documentation, there will be a post against writing documentation. If OOP then functional.

In my consulting job I do have to untangle code written using contrarian practices, obscure languages, and other temporary fads.

Not that Haskell is not a good language, or that functional programming is a bad approach, but rather that neither are a secret weapon against anything else but specific problems these are good at solving.

Good luck to those companies scaling to more than a handful of devs - <USER2> could also hire people to migrate them the right language for the task at hand.

<comment><USER5> I think the communication problem here is that you're arguing against the notion that FP is a silver bullet, but no one here has made that argument, so it sounds like you're arguing that OOP is superior. I buck pretty hard at this because everything uniquely OOP (e.g., inheritance) is generally only problematic. And OOPproponents love pointing out that _good_ OOP programmers don't use these bad features/idioms/etc or they only use them where they don't cause problems, in which case their code ends up looking the same as it would in any non-OOP imperative language (e.g., Go).

</comment></comment></comment></comment></comment></comment><comment><USER14> > This should lend itself to superior performance. I see this with Freckle - > the company now serves 10 million questions during the school day

Assuming a school day runs from 9 am to 3 pm, that an average of about 460 requests per second.</comment>


Ask HN: Has anyone ever been a "shadow employee"? - <AUTHOR> Every time I have to find work it is an absolute slog. I send resume after resume, do phone interview after phone interview. Each time I get hired, I do everything in my power to keep the job. I try to make friends with everyone at the company, even the people that I would loathe otherwise.
Once I'm hired, I have no problems. 100% of the technical challenges I've been tasked with solving I've been able to solve. I have never been stumped by a technical challenge.
Yet no one will hire me. It'd be one thing if I can't code, but I can. I can do mentoring if thats what a company wants me to do. If the company wants me to just write code I can do that too.
No one will give me a change. I've been programming for 20 years, and professionally since 2008.
Is it possible that even though I think of myself as a productive programmer, that I'm actually not? Is it possible that these companies that have me do phone interviews actually know more about my programming abilities that I do?
Is there anyone else in the same situation as me? Is there anyone who has a programming job but can't keep up want to hire me as a "shadow employee" that does all the work for you while I get a salary that draws from your salary. Has anyone else ever been part of such an arrangement? <comment><USER2> It could be one of several issues...

1) Your terrible at the recruitment process and do not give a good and fair account of yourself, making it hard to get past the recruitment and into the actual job.

2) You suffer from the Dunning-Kruger effect. You think you are great but everyone else realizes you are way below average.

3) You are applying for jobs that are not a good fit for you and so not getting anymore. Are you a tech lead that is applying for routine programmer jobs or vice versa.

4) You did not mention your age and so it could be you are coming up against age discrimination. If you are 40 then people expect you to be applying for team leader or higher level jobs and not standard programmer jobs.

I would say that if you are not currently working then your full time job is getting a job. You can do an awful lot in 38 hours of time when looking for work. Customize the covering letter for each position you apply for. Have several different versions of your CV, each one targeting a type of position you want to apply for. Research a list of software companies in your city and then find out the software development manager at each company (not the HR person!). Then reach out to them. Spend time working on a project that would show off your skills and put it up on GitHub. Try putting an ad in your local newspaper offering to work on custom software projects for small businesses.

</comment><comment><USER3> I have a similar problem, so you're not alone. I've been in the game professionally since late 2007. But those 10 years to now are only calendar years. In reality, my experience is closer to 7 years, because I have unemployment gaps in between, and every job hunt is longer than the last.

I am also STILL carpet bombing resumes, but I also know this doesn't feel right. It may be okay for looking for your first job but I know that it's bad to rely mainly on this brute-force job application strategy if you've already worked at past jobs. You are expected to have built a professional network that will enable you to find jobs more easily.

My network exists, but it's rather disappointing. With a stronger network you would not need to blindly apply to so many companies.

So with that said, how is your network? I have been starting to build a new one from scratch, by going to local meetups. Progress would feel slow at first, but eventually I started seeing some of the same people from past meetups, talk to them, and exchange contact info. They could give you an "in" for getting priority in the hiring process.

</comment><comment><USER4> > Each time I get hired, I do everything in my power to keep the job.

> Once I'm hired, I have no problems. 100% of the technical challenges I've > been tasked with solving I've been able to solve. I have never been stumped > by a technical challenge.

> Yet no one will hire me.

OK, it feels like something is missing here... What was your last job and the one before that? How long did you last on those positions? Why did you leave?

Also:

> I try to make friends with everyone at the company, even the people that I > would loathe otherwise.

This sentence raises a red flag for me. It's hard to come off as genuinely friendly if your actual feelings are opposite.

</comment><comment><USER5> Assuming you are a good coder then you must lack skills in the job hunting game.

I am the same, my solution to this was to seek out people who will write my resume (with my assistance) and give me advice on the "recruitment game" (this is paid of course). I think quite often for a technical person our mindset is so far removed from people involved in recruiting and hiring.

If you aren't good at that bit, I think its best sometimes to admit defeat and get some outside help.

</comment><comment><USER6> May I suggest you are asking the wrong question. Shaddow employment will not solve your problem.

Instead ask "How to sell yourself for a job"-- incidentally, this yeilds tons of results on Google. Grant Cardone comes up, while his delivery can be a bit huckstery, still good food-for-thought > [https://www.youtube.com/watch?v=2PFYZde5SPk](https://www.youtube.com/watch?v=2PFYZde5SPk)

</comment><comment><USER7> What languages do you know?

</comment><comment><USER8> what kind of salary would you be happy with?</comment>


Ask HN: Where to find hi-res images of earth? - <AUTHOR> I just discovered how to create dynamic backgrounds for MacOS (https://itnext.io/macos-mojave-dynamic-wallpapers-ii-f8b1e55c82f). The author of that post built a custom background that shows the planet, lit by the sun, relative to the users location. The satellite images come from Himawari-8 though, and show Asia mainly. Therefore, I wondered whether there are any other sources for satellite imagery like this. <comment><USER2> Related project: animate-earth

[https://github.com/dandelany/animate- earth](https://github.com/dandelany/animate-earth)

This repository is an experiment in applying optical-flow-based motion interpolation to processed RGB satellite imagery from Himawari-8's AHI imager, with the aim of regularly producing high-quality smoothed videos from these images, and sharing them with the world. The final products can be found on this Youtube channel[[https://www.youtube.com/channel/UC6Mlo4zfmEITcNoCpBKfEfg/pla...](https://www.youtube.com/channel/UC6Mlo4zfmEITcNoCpBKfEfg/playlists)], updated nearly daily.

</comment><comment><USER3> ESA's image of the week archive is nice. A lot of the pictures are false color but you can sort by number of views.

[http://www.esa.int/spaceinimages/Sets/Earth_observation_imag...](http://www.esa.int/spaceinimages/Sets/Earth_observation_image_of_the_week)

Planet.com lets you download like 70 highres sample images of ports, farms, oil rigs and cities if you give them a fake email address.

[https://info.planet.com/download-free-high-resolution- skysat...](https://info.planet.com/download-free-high-resolution-skysat-image- samples/)

NASA's composite photos of the Earth at night are classic

[https://earthobservatory.nasa.gov/Features/NightLights](https://earthobservatory.nasa.gov/Features/NightLights)

related, there's Aerial which lets you use videos of the earth from Apple TV as your macbook's screensaver. The readme links to a linux and Windows port.

<comment><AUTHOR> Thank you for these links, didn't know the ESA gallery yet. However, they don't provide a 360deg view - to compose one of these dynamic wallpapers, you'd need sixteen shots, ideally from the same perspective. That way, your screen would show the earth as it'd look right now, just from a little further up :-)

<comment><USER2> How are you thinking of making the wallpaper live? Poll the server every 15 minutes for a new image, and if there is one, use @mczachurski's script to regenerate the background image .heic file?

<comment><AUTHOR> Initially, I only intended to find images roughly showing Europe (I don't travel that regularly), but hey, that'd be even cooler! Might even create a little script so everyone can get a dynamic background of their personal earth position! Polling every ~85 minutes would be fine though, since the 16 images are cycled across the day every 1.5 hours.

</comment></comment></comment></comment><comment><USER2> Hi! I just came across the author's repo was thinking the same thing! [https://github.com/mczachurski/wallpapper](https://github.com/mczachurski/wallpapper)

I think the best source would be GOES-R / GOES-17 full disc geocolor images. I'll post back with a list of potential servers.

<comment><USER2> Colorado State provides a website that serves near-realtime processed data from various weather satellites: [http://rammb.cira.colostate.edu](http://rammb.cira.colostate.edu)

they offer a tool called Slider that lets users create overlays of various satellite image streams. You can access imagery from GOES-East, GOES-West, Humawari-8, and JPSS.

Here is a loop of Goes-17 ("goes west") Full Disk Geocolor images captured every 15 minutes for a full 24 hours, starting 9:00 PM PST 2018-10-16 to 10:00 PM PST 2018-10-17: [https://col.st/sNSct](https://col.st/sNSct)

Note that GOES East geocolor images seem to render a synthetic city lights texture + live cloud coverage for night-time images. Goes West is just dark.

NOAA publishes high resolution Goes-16 ("goes east") images every 15 minutes, and seems to lag about 30-60 minutes behind the actual time of capture by the satellite. Here's the latest: [https://www.star.nesdis.noaa.gov/GOES/index.php](https://www.star.nesdis.noaa.gov/GOES/index.php)

<comment><USER2> Here is a "Master List" of GOES data sources [http://cimss.ssec.wisc.edu/goes/goesdata.html](http://cimss.ssec.wisc.edu/goes/goesdata.html)

</comment></comment></comment><comment><USER2> lastly, @maxogden wrote a small script that downloads the latest "CIRA GeoColor iages generated by Colorado State University from the NASA GOES-16 satellite raw imagery" for the last 24 hours, stitches the tiles into high-res composite images, adds text overlay, then uses ffmpeg to create an animation.

[https://github.com/maxogden/goes-16-cira- geocolor](https://github.com/maxogden/goes-16-cira-geocolor)</comment>


How to serve Django Statics (and not go insane) - <AUTHOR> http://blog.sendhub.com/post/36219926831/how-to-serve-django-statics-and-not-go-insane

<comment><USER2> There's something I'm not clear about with respect to the stated problem. I have wrestled with the Django static dance myself, but the most obvious solution (to me at least) was to add a `location` section to my nginx config pointing to my static assets path.

I get all the same benefits named in the article; such as gzip, though I have to build my scripts locally ahead of time (which is trivial via Grunt).

But served this way, that route never touches the framework itself. At a glance, it seems that letting nginx deal with those assets would be much faster in terms of response time rather than the alternative of routing through Django.

Am I missing something obvious here?

<comment><USER3> If you serve your static resources through S3, you can share the same static resources among multiple app servers. Also, a proper CDN will serve them a lot faster than your app server through nginx can.

<comment><USER4> CDNs aren't _necessarily_ faster because you have to have a connection to a different server. _However_ the idea is that say you have jQuery loaded for a CDN, and so do a bunch of other sites (so, same URL), they will already have the thing cached when they load up your site.

</comment></comment></comment><comment><USER5> Have you measured the change from standalone to embedded images in the CSS? Is it really worth the increase in size (due to base64) and the lack of parallelization?

<comment><USER6> Also caching. In terms of parallelisation, this method is only beneficial if there is currently request queuing, same principle as using sprites - [https://developers.google.com/speed/docs/best- practices/rtt#...](https://developers.google.com/speed/docs/best- practices/rtt#SpriteImages)

</comment></comment><comment><USER7> How do I get to your website from your blog? I'm viewing it on my phone and there's no obvious link.

<comment><USER8> There is a "visit us @ SendHub" in the header of the page, just bellow "SendHub Blog" and their logo. I can see it Chromium in Linux though, haven't tried it in a mobile browser.</comment></comment>


Ask HN: Best Practices for running an internet-accessible Raspberry Pi at home? - <AUTHOR> Hello,
I would like to use my home Raspberry Pi as a jump box / general purpose server accessible via SSH. What are the current best practices for running an internet-accessible home Linux box? I know SSH pubkeys are the way to go, but what are the gotchas with that method? I've run internet-accessible servers in the past, using SSH and fail2ban. Is that still the preferred method?
Or should I really be running a home AWS/Azure/Google/DigitalOcean instance and use that instead?
Any links to guides or current-day discussions.
Thank you very much! <comment><USER2> Here are some best practices from a security perspective:

[https://makezine.com/2017/09/07/secure-your-raspberry-pi- aga...](https://makezine.com/2017/09/07/secure-your-raspberry-pi-against- attackers/)

<comment><AUTHOR> Thank you, very much appreciated.</comment></comment>


There are no patent trolls in fashion. - <AUTHOR> http://www.ted.com/talks/johanna_blakley_lessons_from_fashion_s_free_culture.html

<comment><USER2> There were some legal copying fights in fashion just like there were some in music... but that's not my field, so i will lack concrete examples.

Also, product design has very much copyright protection and you also find utilitarian design elevated to the form of art.

(and her example about some fashion clothes being inspired by avatar is pointless since avatar is inspired by american indian, so where do you draw the line from copying from the original source and copying from the derivative of that original source?)</comment>


A Look at Ads on Instagram - <AUTHOR> http://blog.instagram.com/post/64973363225/adsoninstagram

<comment><USER2> This is a really good looking ad. Do you know what the problem with ads like this is? They don't work. Ads that don't stand out, that blend into a seamless UX that allows a person to navigate a content company's media platform quickly in a goal-orineted manner; they don't fucking work. They get ignored.

So the marketing company or the sales dept turns up the juice a little bit. They allow them to stand out a little more. They give them special bells and whistles the user created content doesn't have. They let them animate, float over content or auto play video or sound.

Why? Because it makes the product a little better for the customers: the advertisers. Instagram, just like their Facebook overlords, are now in the business of making their product as good as it can be for the advertisers while keeping the users just happy enough not to leave.

I really dislike this cycle in the startup world. I don't know a good way around it. I'd like to see someone disrupt that.

<comment><USER3> _I 'd like to see someone disrupt that._

Ads are the only form of micropayment that is currently widely-available. If you solve the micropayment problem, you have a chance of shifting control from advertisers to consumers. I'd pay $0.001 to read your blog post.

Of course, many companies like to double-dip, like the NYT with their subscription charges _and_ ads, so I think ads are going to be around for a long time.

<comment><USER4> Should also highlight that these companies have a long history of double dipping. Like getting commercials on your $59.99 comcast subscription.

<comment><USER5> I signed up for cable without previously experiencing it, and I honestly expected no commercials, since I was 'paying for it'. I was not a customer for very long.

</comment></comment></comment></comment><comment><USER6> I would gladly pay some yearly fee to be able to use Instagram (and most of the services I use often, really) ad-free. I _really_ wish this was an option.

I assume either a) it's prohibitively expensive to implement such an ability based on how much revenue they expect vs. lost ad revenue vs. lower user engagement due to ads lessening the user experience, b) people are less willing to pay to put ads on your service at a given price if there is a segment of your user base that is guaranteed not to see them.

<comment><USER7> I'd expect, also, that the users that are engaged enough and affluent enough to be willing to pay for such a service are also especially valuable as targets for advertising, to add to point b) above. I'd expect CPMs to be pretty profoundly affected by allowing that kind of option.

</comment></comment><comment><USER8> It'd be interesting to see them monetize on user content. With all the pictures of cups of java, bowls of salads, plates of sushi and other food items that are geotagged, Instagram could start including ads for promotions at these restaurants or similar highly rated restaurants near me. I'd find that sort of advertising useful and enjoyable.

</comment><comment><USER9> I just invented something (probably not). Voluntary Ad Photo Submissions™. Someone takes a photo of their friend drinking Pepsi. Posts it, tags the advertiser: @pepsi. Use a hashtag, whatever. Pepsi looks through their submissions, selects a photo they like and uses it for their Instagram ad campaign. BAM. Now it's a game. The "winner" is popular, they get the likes. Pepsi gets tons of free advertising from everyone posting Pepsi photos.

<comment><USER10> perhaps even pay out a small percentage to the user based on the number of likes?

<comment><USER11> I don't think they'd need to. Plus doing that and avoiding it being gamed would be a hassle.

</comment></comment></comment><comment><USER12> The ads that get results won't be a subtle as this, and without that subtly you'll start to hurt positive metrics - it's the game where users expect 100% value towards them, and you must play it to win otherwise they are mobile and will simply use a new service.

</comment><comment><USER13> Interesting how both Instagram and Pinterest are starting this transition at pretty much the same time with a very similar approach ([http://blog.pinterest.com/post/61688351103/planning-for- the-...](http://blog.pinterest.com/post/61688351103/planning-for-the-future)). Tumblr is already down the exact same path of inserting native-looking content with a small "sponsored" label.

I'm sure big, sexy brands will have no problem creating some nice-looking visuals that will fit right in. Questions is for me whether this will ever work for the long tail of advertising that is currently tweaking their keywords on AdWords. Anybody have any insight or experience with this?

</comment><comment><USER14> It was expected, especially after those articles showing how Instagram has been used as a selling platform on Middle East[0].

[0] Just one of them: [http://www.digitalks.me/social-media- marketing/instagram/how...](http://www.digitalks.me/social-media- marketing/instagram/how-brands-are-really-embracing-instagram-in-middle-east/)

<comment><USER15> Apparently it has also been used as a platform for selling guns: [http://www.thedailybeast.com/articles/2013/10/22/people- are-...](http://www.thedailybeast.com/articles/2013/10/22/people-are-using- instagram-to-sell-their-guns-and-it-s-mostly-legal.html).

<comment><USER16> Considering that in America you can walk into Wal-Mart, most hardware stores and some gas stations and walk out with a gun 10 minutes later, I'm not sure why people selling guns on social media is supposed to be news to anyone.

</comment></comment></comment><comment><USER17> So the bait-and-switch begins.

There are a number of startups including Nitrogram, Olapic and Pixlee who seem to be doing well selling analytics, user-generated content, customer service tools and branded contests based on Instagram. Those business models seem like a much better fit for the platform.

Sad to see Instagram take the lazy route.

</comment><comment><USER18> Is it just me or does it seem like everytime Twitter announces something about the IPO instagram writes a blog post about ads?

</comment><comment><USER19> I don't understand why they don't just charge accounts with more than X followers. High profile brands are (currently) getting a massive amount of free advertising. I'm sure they would be willing to pay to keep up their profile.

See Mailchimp, free up to 2k subscribers, paid after that. It's so simple.</comment>


Show HN: Vitality – A reminder of life with each new tab - <AUTHOR> https://chrome.google.com/webstore/detail/vitality/ofnbjjlogningakpjgphhiidgkbjgcch <comment><AUTHOR> Accompanied blog post: [http://tonyy.in/2016/08/22/vitality-a-reminder-of- life/](http://tonyy.in/2016/08/22/vitality-a-reminder-of-life/)</comment>


Pre-emptive commit comments - <AUTHOR> http://arialdomartini.wordpress.com/2012/09/03/pre-emptive-commit-comments/ <comment><USER2> This is good advice, but I think using the active voice as well as the present tense helps. For example, instead of "...a Preview is shown", say "Show Preview when...". Simple sentence structure is easier to skim.</comment>


IOTA being shut off is the latest chapter in an absurdist history - <AUTHOR> https://www.coindesk.com/iota-being-shut-off-is-the-latest-chapter-in-an-absurdist-history <comment><USER2> _"I was a green crypto reporter approached by the press team for former beauty queen and reality TV contestant Jessica VerSteeg, who wanted to open a cannabis business in California. [...] VerSteeg wanted to use the IOTA protocol, named for its proposed functionality with internet-of-things (IoT) devices, in a coworking space for cannabis startups."_

This project is peak 2017 bullshit. I can imagine the pitch deck: "It's WeWork but for cannabis startups using IoT on the blockchain promoted by a reality TV star!"

</comment><comment><USER3> This project is the gift that keeps on giving when it comes to hilarity and schadenfreude. Custom hash function? Bizarre obsession with trinary? Complete centralization in a space where decentralization is the point? Constant big announcements with no substance?

I love watching these guys and their supporters. It's like watching an internet cult in real time.

<comment><USER4> During a lunch the topic of cryptocurrencies came up and a co-worker of mine said he'd invested in IOTA and EOS (another nonsense coin).

The thing is I think he's smart and a programmer with the head in the right place and has made a ton of very good decisions at work. So if you think these projects only attract idiots and fools you're wrong. Smart people can also be fooled.

<comment><USER5> OK, I'll take the bait, why is EOS a nonsense coin?

<comment><USER6> It does exactly nothing better than anything that was done before it.

<comment><USER5> That's not an analysis or an answer to my question, but in response to your statement, EOS does do things differently than most POW chains as it is DPOS, does that make it better? Who can say.

I'm not looking for dogmatic crypto-tribalistic nonsense, simply an answer to why the GP felt necessary to lump EOS into his ad hominem attack. Too often these discussions resemble drunk bar patrons arguing over which cities sports team is better, I hoped HN would be better than that.

<comment><USER6> DPOS, with 21 nodes mostly located in China.

Yeah, it's "different", but not in a good way.

EOS has a bunch of big problems, and they're not likely to fix them, as there's no motivation to do so.

</comment></comment></comment></comment></comment></comment><comment><USER7> > First their custom-made hash-function was broken and you could forge > transactions. Now they had to shut down their network because their wallet > was hacked. This is insane because you should not be able to shut down a > decentralized network.

<comment><USER8> it was never decentralised, they openly admitted this. They had 'plans' to decentralise it. The hype around this project was supported by nothing other than shills and bots, hoping to sucker in a few clueless noobs.

<comment><USER9> It was amazing, there were headlines all the time about something huge that happens but no one ever followed up anything.

"Tokyo chooses IOTA"

You assume that that city is implementing IOTA, right? If you dig deep enough you will see that what actually happens is that few people from IOTA will participate in something like a seminar with a workshop in Tokyo. It is organized by somebody in the city administration as part of some social program and there are 30 participants and what IOTA is chosen for is to be among those.

</comment></comment></comment><comment><USER10> > "This year we're really focused on making sure our technology is mature > enough to have real, live products," Schiener said.

Outage of 12 days and counting... Why won't anyone put us in production..

<comment><USER11> I enjoy thinking about an IoT world they envisioned being shutdown for 12 days.

</comment></comment><comment><USER12> Crytpocurrencies are not valued on its software (even though paradoxically, what makes it different from other currencies is that it's only software). Otherwise the best software would have the highest market cap, which obviously isn't the case. This is true to such an extreme degree that it doesn't even matter if the cryptocurrency is used, works, or even have a single working implementation. Seriously, there are top >100M market cap coins that have never shipped a working binary.

<comment><USER13> > there are top >100M market cap coins that have never shipped a working > binary.

How do people know who has how many coins?

<comment><USER12> Almost every coin is implemented with straightforward, non-blinded accounting ("UTXO" model) such that everyone knows how many coins are associated with each public key. For example, this one belongs to Hal Finney (the creator of Bitcoin) and you trace the balance of and movement of coins transparently:

[https://blockstream.info/address/1BgoUL3Mf8vDSDU4jjpFARKBJ6z...](https://blockstream.info/address/1BgoUL3Mf8vDSDU4jjpFARKBJ6zPDpa4RU)

<comment><USER14> > Hal Finney (the creator of Bitcoin)

To be clear, this isn't definitive, as he is one of many individuals suspected to be Satoshi Nakamoto.

<comment><USER15> I think it is fair to say he is "a" creator of Bitcoin given all the early work he did to make the project a success but there is no evidence that he is the inventor of Bitcoin, Satoshi Nakamoto.

As an unrelated side note it is worth reading his post from 2009 when we talks about having ALS: [https://www.lesswrong.com/posts/bshZiaLefDejvPKuS/dying- outs...](https://www.lesswrong.com/posts/bshZiaLefDejvPKuS/dying-outside) I have a memory of discovering this essay on hn, but I can no longer find the discussion. Maybe I remembered it wrong.

 __Edit: __I found it[https://news.ycombinator.com/item?id=867623](https://news.ycombinator.com/item?id=867623)

</comment></comment></comment></comment></comment><comment><USER16> Good riddance, I remember during the bull run my friend was talking about Iota. I was into mining at the time and looked up how to mine it. Read about the project and knew it was scam then, not sure how it survived until now.

Looking forward to the day where the shitcoins die off and there's only a handful of cryptos on exchanges/people talk about.

<comment><USER17> SI'm afraid that day will never come. BS in that space is just too deep. Valuations are imaginary, people involved too delusional and none of these projects are based on anything real.

</comment></comment><comment><USER18> Still waiting for a use case of blockchain outside cryptocurrency also.

<comment><USER4> Consider a timestamping service that's based on mathematical proof instead of social proof.[0]

But I agree, most often blockchain outside of a cryptocurrency doesn't make sense. This use case also depends on the security of an existing cryptocurrency.

[0] [https://whycryptocurrencies.com/timestamping_service.html](https://whycryptocurrencies.com/timestamping_service.html)

<comment><USER19> Decentralized timestamping is literally what Bitcoin is, there's no other way of describing it. Ordering transactions canonically is timestamping.

<comment><USER4> My point is that you can leverage this by inserting extra data on a transaction, so you can timestamp any message.

</comment></comment></comment></comment><comment><USER20> The larger issue here is that the wallet was built in a very similar way to many crypto wallets. They sort of sell the fact that private keys are not stored in a central DB as a silver bullet for decentralization. But since the private keys are copied into memory, and the software is automatically updated, the location of the key storage becomes irrelevant.

The only real way to keep your keys safe is in a hardware based solution that has been audited by multiple parties. Our credit cards have that level of security, crypto wallets need at least that much.

</comment><comment><USER21> I am laughing ... Laughing my b u double t off at this. In 2019 I spent too many hours debating crypto as currency replacement or substitute. Never bought it. But this is like m.pythons+galaxy hitch hiker+pink-panther level of crazy dumb.

</comment><comment><USER22> The article says that the price of IOTA has gone up in the last 2 weeks. What does that mean? I don't see how people can be buying and selling IOTA if they are not able to send or receive it.

<comment><USER23> Because you can still buy and sell the coins on an exchange. It's just that you can't withdraw or deposit coins from your exchange account only trade between other exchange accounts. No wallet to wallet trades only trades of the coins sitting in the exchanges wallet (so basically trades on the exchanges private(non block chain related) ledgers rather than on the coins ledger).

Actually now that I think about it I wonder what liability the exchange has in this. Obviously the exchange can't send you your coins because it's physically impossible and the value is purely speculative but currently being given value only on the exchange. Would they need to reimburse you for the 'value' of the coins if you can't withdraw? Though if we're playing a game of silly buggers I guess the exchange could put up a sell for 0.000001 cents a coin, execute the trade and immediately freeze further transactions then claim any payout would be at the last traded value (which obviously wouldn't work as there are multiple exchanges). Perhaps they could 'give access' to the exchanges wallet key with instructions that the person trying to withdraw is entitled to take out their share of the coins thus it's the account holder who is 'in control' of the coins.

</comment></comment><comment><USER24> Tempting to buy. I bet some bullshitters are going to revitalize them.

</comment><comment><USER25> Omg, I just lost my only crypto investment if this isn't fixed.

The amount I lost: 100 USD

<comment><USER26> Just reading this I can see you are new to crypto.

You did not lose 100 USD. You lost XXX MIOTA.

<comment><USER5> Weird distinction, is this a common thing in financial markets? Seems like he might have lost both if the network never comes back online.

If you're a stock trader and you buy $100 in a company that goes backrupt do you lose $100 or XXX stocks?

<comment><USER25> I bought monopoly money for 100 USD, hoping that they will become a thing. Then I lost my monopoly money. From my standpoint, all explanations are true, therefore irrelevant. I can no longer redeem my USD, 100 of them or less. 100 USD is gone during my gamble.

The responders are wrong about my proficiency with crypto. I've been following the tech and finance side of it since Bitcoin was worth 120 USD. I've written trade bots, some fun smart contracts and even participited in Dogecoin giveaway with some doge I mined.

</comment></comment></comment></comment><comment><USER27> If your cryptocoin is centralized, it's not really a cryptocoin, even if it's listed on a cryptocoin exchange.

Nano is another coin with properties similar to Iota that is actually decentralized.

(disclaimer: I hold some Nano)

<comment><USER28> In a bunch of the recent IOTA threads I've seen people shilling Nano. I'm slowly beginning to understand HN's allergy to cryptocurrencies.

</comment></comment><comment><USER29> The thing about IOTA is that it's just a reflection of the entire economy which is founded on coercion, manipulation and deception; our economy has transcended reality and reason; particularly the tech sector.

There is nothing behind it but the lie is so strong and there are so many people peddling it that the market starts to believe its own lie.

It's funny how quickly some capitalists will discard cryptocurrencies as worthless junk while simultaneously preaching the doctrine of "efficient markets" and not realizing the simple fact that "real markets" and "cryptocurrency markets" both exist in the same universe and are acted upon by the same market forces.

</comment><comment><USER30> It would be nice to read an attack on the technology rather than an article highlighting hater quotes on the feuding misogynist, ego-maniacal founders.

Iota remains a speculative cryptocurrency. It does not rely on the technology before it and is not a copy-paste crypto like many that came out of the last boom cycle.

I still think it is quite innovative. That said, it may eventually fail due to its poor implementation. The value of it on the exchanges reflects the fact that it may survive this latest fiasco.

<comment><USER31> The article does go into the flawed technology: the hilariously poorly thought out trits, the flawed internally developed hash, the centralized nature of the system, etc etc. IOTA is to technologically flawed that it's amazing that it's worth more than $0.

<comment><USER30> The trits are bizarre and introduce complexity but isn't necessarily a critical flaw. I don't see anything in the article about them. They rolled their own crypto, but later corrected it.

Indeed, it has had their centralized Coordinator with plans to decentralize. Is that a flaw? Maybe, but it's also a scaling issue.

The distributed proof of work is novel as well as the absence of centralized mining and transaction fees.

<comment><USER6> They "corrected" it when they were called out on it, while claiming it wasn't a problem, and also claiming they did it on purpose so that if someone "stole" their code they could attack and destroy anything someone else would create.

Truly bizarre bullshit.

<comment><USER30> I don't recall reading about their rationale that way. Only the unholy way in which they defended it, while swapping it out then sequestering all iota until claimed through centralized means.

Sadly, I don't think that the blind defense of flawed security is that bizarre and is all too common today.

That said, it was corrected and seems solid to date.

<comment><USER6> Solid? The entire ecosystem has been down for two weeks because it's a centralized shitcoin.

There's nothing "solid" about this. It's a scam.

And yes, that's exactly how they described it.

<comment><USER30> What's not solid about their current Kerl implementation?

It's a scam? Any link to how they are intentionally stealing money? I'd like to know how you know.

<comment><USER6> I don't have the time or inclination to engage with shills.

Read for yourself and make up your own mind.

[https://bitcointalk.org/index.php?topic=5227016.0](https://bitcointalk.org/index.php?topic=5227016.0)</comment></comment></comment></comment></comment></comment></comment></comment>


Ask HN: Source code release upon death - <AUTHOR> I've always wondered: have any developers ever made arrangements to release source code of their previously closed-source works upon their deaths?<p>What makes me wonder is that there's a lot of great closed-source software out there, a lot of which has become abandonware (while remaining closed) after their developers move on or disappear.  Some closed-source developers may want to keep their work closed while they're alive to control the direction of development or for personal profit -- both reasons which would obviously no longer hold once their author has passed away.  Some of them may want to release their source after their deaths, and I'm just wondering if that's ever happened or if anyone has plans to do so. <comment><USER2> At the enterprise levels this is dealt with by code escrow. I did some research on this for my own business and Iron Mountain [0] seems to be the big player in the field. Costs seem to be in the roughly $1K setup and $1K/year range, but as usual with enterprise sales it's mostly "call us for a quote". I haven't had any clients ask for this yet, but it's good to be prepared if they do.

[0] [https://www.ironmountain.com](https://www.ironmountain.com)

</comment><comment><USER3> Nope someone should get on that. Like an amendment to the EULA its a great idea we need to think more about digital assets after death possibly a digital will.

<comment><USER4> Presumably this could be put in one's will like anything else. If they have sole rights to the code, all they'd need is their will to state that upon their death, the could should be released under whatever license by the estate.</comment></comment>


Show HN: Flicktogether – Find movies that you and your friends like. - <AUTHOR> http://www.flicktogether.com

<comment><AUTHOR> Developer here. I'd like to receive some feedback on this side project I put together over a weekend. Any kind and not so kind words would be greatly appreciated.

The app is built using Meteor and it's very rough around the edges, but should work in most modern browsers. Firefox users will see some design issues but it should work.

Cheers! -Jg</comment>


Show HN: Styletron – Virtual CSS - <AUTHOR> https://ryantsao.com/blog/virtual-css-with-styletron <comment><USER2> This isn't specifically to do with Styletron, but I'm wondering: what is the use case for building arbitrary CSS from JavaScript? I've never written an app where this seemed necessary; the most I've ever needed is some semantic classes to apply, like this:

        .request-pending {background-color: $yellow;}
        .request-acknowledged {background-color: $green;}

It seems like mixing the actual styles in with the JS violates separation of concerns and clutters up the actual logic.

<comment><USER3> It makes no sense for 99.9% of the apps out there. If you are running at Facebook or Google level, maaaybe. This whole madness started with a FB dev presentation about running CSS "at scale". Then folks started to copy each other and this is what we have now.

Just look at [https://github.com/rtsao/styletron](https://github.com/rtsao/styletron) there's a whole "how to use it" page, but zero info WHY to use it. Not even a section about valid use cases.

IMHO SASS covers almost all cases of CSS "at scale".

> It seems like mixing the actual styles in with the JS violates separation of > concerns and clutters up the actual logic.

It does not just seem like it... it does violate it for no good reason.

<comment><AUTHOR> I think the argument is that separation of UI components is a more true "separation of concerns" than separating CSS, JS, and HTML.

The implementation of a UI widget is ultimately a combination of CSS, HTML, and JS which are coupled to some degree, so by colocating them together, the component is easier to manage. But to do this effectively, you need some way to get around the global nature of CSS. CSS modules and CSS-in-JS are means of achieving this.

A good blog post about this topic is: [https://medium.com/seek-developers/the- end-of-global-css-90d...](https://medium.com/seek-developers/the-end-of- global-css-90d2a4a06284#.kf4qq0njt)

<comment><USER3> > the component is easier to manage

But you can still keep CSS in a CSS file inside a module folder. SASS or any other CSS build took could grab it from there.

> get around the global nature of CSS

That can be done with proper scoping supported naturally by CSS.

Local CSS is still not as bad as moving CSS declarations to JavaScript.

<comment><USER4> An additional problem is that even when CSS is properly scoped, you end up with wasted bits over the wire by sending down duplicated declarations. I did some cursory research using cssstats [1] because I was curious how many CSS declarations are unique. Turns out it's about 20-25% for most "big tech" websites.

Gzip helps reduce the impact of this, but Styletron's gzipped CSS is still much (40% or so) smaller than the other CSS-in-JavaScript implementations [2]. In some cases, the cost of switching to using a tool like Styletron might be justified by faster loading times in low-bandwidth markets.

[1] [http://cssstats.com](http://cssstats.com)

[2] [https://ryantsao.com/blog/virtual-css-with- styletron](https://ryantsao.com/blog/virtual-css-with-styletron)

<comment><USER5> Bandwidth was the major motivation for building Aphrodite, too: Khan Academy wanted to decrease the number of bytes required for the initial pageload. [http://engineering.khanacademy.org/posts/aphrodite-inline- cs...](http://engineering.khanacademy.org/posts/aphrodite-inline-css.htm)

> We must deliver the absolute minimum amount of CSS necessary by only sending > down CSS in use by components in the server-side rendered body. This rules > out extracting all the CSS used in all of our components at compilation > time, as much of that CSS would not be needed for the initial page load.

Colocating styles with components _is_ a win, but, more importantly, styles- as-JS-objects was the simplest way to get this perf feature out the door.

</comment></comment></comment></comment></comment></comment><comment><USER6> Great work! Styletron looks awesome and the performance definitely fits well with some of the apps I work with. I'll give it a try :)

</comment><comment><USER5> I'm curious about this limitation:

> Descendant and child combinators are unsupported

Are conditional applications of rules also unsupported, like `:hover` and media queries? That's a big deal in terms of runtime perf, too.

<comment><AUTHOR> Yeah, media queries and pseudo selectors (such as :hover) are supported. These tend to be really important for critical CSS. Descendent combinators are possible but to a greater degree involve tradeoffs. I posted my thoughts on this on this issue: [https://github.com/rtsao/styletron/issues/27#issuecomment-26...](https://github.com/rtsao/styletron/issues/27#issuecomment-265678839)

</comment></comment><comment><USER7> Am I having a hard time understanding this CSS in JS concept, and therefore Styletron, if I've never worked with React before? Let's say at a basic level, I have compiled stylesheets -- could you explain in simple web developer layman's terms how this could be implemented, knowing the benefit of reduced file size and increased performance is what were aiming for?

</comment><comment><USER8> Looks nice but I don't like the lack of pseudo selectors:

From the footnotes:

> The one area where this is useful is combining descendant combinators with > pseudo classes, the most common use case being where hovering a parent > triggers a style change in a descendant node. However, this behavior be > implemented in JavaScript with event listeners and explicit state changes if > needed.

<comment><USER9> Plain pseudo classes are supported (e.g. :hover), but since descendant/child combinators aren't supported, a parent :hover can't change a child style. But any element can still have :hover styles.

<comment><USER10> That seems like it would be a big roadblock to doing much useful with it. Is it impossible, not yet supported, or supported but not easy to do?

<comment><AUTHOR> Someone submitted a proposal on how to support descendent/child combinators. It's certainly possible, but I wrote a response on why it would would potentially involve tradeoffs: [https://github.com/rtsao/styletron/issues/27#issuecomment-26...](https://github.com/rtsao/styletron/issues/27#issuecomment-265678839)

</comment></comment></comment></comment><comment><USER11> tl;dr: deduplication processing for CSS speeds CSS compilation and produces smaller file sizes. Cool!

The article only has compilation performance tests, and there's a small mention in the docs: How does Styletron affect render speed in the browsers?

Also, what tool are you using to convert existing CSS to JS objects?

<comment><AUTHOR> I actually wrote a separate benchmark suite [1] that uses Paul Irish's pwmetrics [2], so using real Chrome to check render performance. From those numbers, Styletron performed really well in terms of time to first paint and time to first meaningful paint. But I didn't include it in the blog post because I wasn't sure how best to separate the transfer time factor (pwmetrics is set up to throttle network speed) since Styletron critical CSS was so much smaller.

[1] [https://github.com/rtsao/styletron/tree/master/packages/benc...](https://github.com/rtsao/styletron/tree/master/packages/benchmarks)

[2] [https://github.com/paulirish/pwmetrics](https://github.com/paulirish/pwmetrics)

</comment></comment><comment><USER12> Sounds awesome.

I got the same idea, when I looked at javascript style sheets.

"We don't do inline styles, we generate classes!"

If they already generate, why not merge the whole stuff?

</comment><comment><USER13> I love how your blog looks.

<comment><AUTHOR> Thank you! It was built with Styletron actually (you can inspect the source).

It was also built with the excellent Inferno.js [1] library to render static pages while also having a super fast full client-side app, kinda like what Gatsby.js [2] does with React.

[1] [https://github.com/trueadm/inferno](https://github.com/trueadm/inferno)

[2] [https://github.com/gatsbyjs/gatsby](https://github.com/gatsbyjs/gatsby)

<comment><USER14> Why overengineer something as simple as a blog?

<comment><AUTHOR> For fun mostly. It's a passion project I did in my free time. I wanted to dogfood ideas, experiment, and learn.</comment></comment></comment></comment>


China to block cryptocurrency platforms that allow centralized trading - <AUTHOR> https://www.reuters.com/article/us-china-bitcoin/china-to-block-cryptocurrency-platforms-that-allow-centralized-trading-bloomberg-idUSKBN1F41G9?utm_campaign=trueAnthem:+Trending+Content&utm_content=5a5ca12304d3013916c96e0b&utm_medium=trueAnthem&utm_source=twitter <comment><USER2> The 0x protocol will come in handy in China soon.

[https://0xproject.com/](https://0xproject.com/)

<comment><USER3> How so? From what this (very brief) articles says, "Chinese authorities will also target individuals and companies that provide [...] settlement [...] services"

No matter what protocol and software is used, at some point, people will want to convert cryptocurrency to/from yuan. This cannot be done anonymously -- the options are face-to-face or via traditional banking system. In either case, it is pretty easy for authorities for find and arrest the relevant people.

I bet less than a hundred people arrested will be enough to scare everyone else so that all major exchanges will get closed.

<comment><USER4> Not unless people start to accept crypto as payment - it's not going to totally replace fiat quickly, but I have started taking payment from my clients in ETH, and also am selling digital goods and taking crypto as payment.

I am also paying others in crypto. Sure it's niche now, but the only barrier to adoption is a bit of technology advancement and belief in the value.

</comment></comment></comment><comment><USER5> > platforms that allow centralized trading

How are these platforms different from a cryptocurrency exchange?

<comment><USER6> I believe the definition was purposefully left vague to allow authorities more discretion in shutting down the services designed to facilitate peer to peer transactions(e.g. sites resembling localbitcoins).

</comment></comment><comment><USER7> Smart and good move. The whole thing about being decentralized is that you don't need one body controlling the flow of a familiy's cash especially when they need water, food and toilets.

</comment><comment><USER8> What exactly is the definition of de-centralized trading? Peer-to-peer transfers? With no market in place (since markets are centralized), isn't this like outlawing all exchanges?

<comment><USER9> Centralized trading does refer to website exchanges I believe.

But not all exchanges are centralized. For example [1]BISQ is one of many decentralized P2P exchanges.

[1] [https://bisq.network/](https://bisq.network/)

</comment></comment><comment><USER10> So [https://bitshares.org/](https://bitshares.org/) and other decentralized exchanges are still allowed? Wow.</comment>


Infibeam's Pi - India's first ebook reader [~200 USD] - <AUTHOR> http://www.infibeam.com/pi

<comment><USER2> great show from infibeam...pi has all reading features and price is 50% lower than kindle after taxes so very likely pi will be super hit. amazon will have a tough time selling kindle in India.

</comment><comment><USER3> the logo looks like amazon's.</comment>


Tax Free in Paradise [Infographic] Australian Living in Phillippines - <AUTHOR> http://flagtheory.com/?p=1393

<comment><USER2> One thing to note is Americans are taxed on their world-wide income, regardless of residency. A virtual Berlin wall.

So, it's tricky for Americans unless you pull an Eduardo Saverin.

</comment><comment><USER3> The Philippines has good and bad. Don't go rushing in with rose-colored glasses. Before rushing to move there, make yourself informed.

(Been there a number of times)

</comment><comment><USER4> Half this info is obvious, the other half is not well cited and it is a commercial self-promotion (spam).</comment>


Show HN: 100,000 Database ops/sec in IE6 on 2GB Atom CPU - <AUTHOR> https://github.com/amark/gun/wiki/100000-ops-sec-in-IE6-on-2GB-Atom-CPU <comment><USER2> Holy... ~5M ops/sec on Android!!

How did you test it on Android? On stock browser? Or on some sort of default web view control? Does that mean an Android phone is more powerful than a cheap Atom computer?

<comment><AUTHOR> Thanks! No, actually. Latest Chrome on the $150 laptop also did ~5M ops/sec, so they are about equal. Which makes sense.</comment></comment>


Attorney General Tom Corbett Subpoenaes Twitter To Identify Anonymous Critics - <AUTHOR> http://techcrunch.com/2010/05/19/tom-corbett-twitter/

<comment><USER2> I think we will all be safer when the pre-internet generation passes from power. I hope so, anyway.

<comment><USER3> As an analogy (USA-centric), look at people who were born and raised after the so-called Summer of Love and have grown up to take office or run for sheriff or become judges.

While there have been improvements in laws and attitudes regarding drugs and sexuality, we've a long way to go.

<comment><USER4> True, except I think there was much more of a divide there. Roughly half were hippies, the other half were ...well whatever the opposite is.

Whereas with the Internet, entire generations are involved. There's no ~50/50 divide b/t web-surfing hippies and non-internet-using reactionaries. Everyone is online.

The main problem is getting the majority of people in the net generations to understand their rights, how certain things affect them, and to care enough to log of Facebook for a few minutes to do something about it when they're threatened.

</comment></comment></comment><comment><USER5> "...Twitter to appear as a Grand Jury witness to "testify and give evidence regarding alleged violations of the laws of Pennsylvania"."

Is there someone here that knows what the PA law is that enables a subpoena for uncovering identity in this case? If the long standing interpretation of the U.S. Constitution protects liability from criticizing a public figure anonymous or not (does it?) then how can a PA law, require uncovering identity if there can be no basis for liability once the identity is known?

I've tried to read the embedded subpoena but scribd just shows a spinner telling me its saving trees.

<comment><USER6> Corbett is best known in PA for prosecuting a number of high-profile cases where legislators used taxpayer-funded state resources for campaign purposes -- i.e., using government-employed staffers to knock on doors, send out campaign mailings, etc.

It's possible that there's a similar thing going on here, and he's trying to prove that the accounts are being used from state resources or something.

<comment><USER7> I suppose I have a hard time believing that it was just coincidence that the two accounts were criticizing Corbett before he went after them. He _really_ just has the public's interest at heart here, and it has nothing to do with going after his enemies?

<comment><USER6> There are presumably hundreds of Twitter accounts criticizing Corbett, and these two hardly have gigantic followings. I'm assuming he's trying to prove something besides "these twitterers don't like me."

I doubt he has the public's best interest at heart, except insofar as doing things the public would like will make him more likely to be elected governor. So just randomly subpoenaing two Twitter accounts doesn't seem an effective way of going about that.

</comment></comment></comment></comment><comment><USER8> Go go gadget Streisand Effect!

</comment><comment><USER9> Attorney General of the state that brought you the Lower Merion School District (laptop webcam spying case). I wonder what is Cobett's legal opinion of that case. I'd like to know if this subpoena is part of his general view of internet privacy.

<comment><USER10> Please don't pretend that some backwater nutjobs represent the whole of the state of Pennsylvania.

</comment></comment><comment><USER11> Eugene Volokh's take (on it being a criminal investigation instead of a civil investigation):

[http://volokh.com/2010/05/19/pennsylvania-attorney- general-t...](http://volokh.com/2010/05/19/pennsylvania-attorney-general-tom- corbett-subpoenas-identity-of-his-critics-for-a-criminal-probe/)

The idea that Corbett, as AG, would subpoena to investigate the criminal charges against...Corbett doesn't make sense though.

</comment><comment><USER12> Oddly enough, I'm initially leaning towards siding with Corbett, although like everything else internet, we only have a very small piece of the story. (disclaimer: I know nothing of PA politics, which party this guy is, what his views are, etc. This is just a thought experiment)

The question: are the tweeters using Twitter as a tool for political speech? If so, they rock. More power to them. Get out of their way.

Or are they using Twitter as a political hack-job tool, spewing out purposeful disinformation just to muddy the waters? More to the point, are they being paid by some political entity to do this? Is there damage to Corbett's life being caused by these purposeful lies?

You have maximum freedom of speech for political purposes. But if you have malice towards a person for political reasons, and are saying things you know to be inaccurate in order to hurt them, and you have hurt them in some way (perhaps instigating an investigation you know to be spurious) you've crossed the line and should be subject to civil action from the person you are purposely harming. That's not a criminal thing, but a civil thing.

EDIT: So yes, as a matter of free speech I have the right to make a bunch of things up and call you a pedophile and convicted felon on Twitter the day you apply for the job as CPA at a daycare, but if you lose the job because of it you have the right to make me pay for that damage that I purposely caused. This is no different than the freedom to have a gun doesn't give you the freedom to go around shooting people. (key concept: real measurable harm is done in a purposeful manner)

<comment><USER7> > if ... you've crossed the line and should be subject to civil action from > the person you are purposely harming. That's not a criminal thing, but a > civil thing.

That doesn't seem to be what's going on here, though. I agree Corbett has the right to sue for libel or defamation. But the linked article is talking about a grand jury, which is only involved when criminal cases are brought by the state, i.e. brought by Corbett in his official capacity as Attorney General.

<comment><USER12> I see you've edited your initial comment to read differently. Ah, the joys of HN :)

Like most things internet, "need more data" seems like a reasonable position to take. Is there a legit criminal case? If the purpose was to impede his job as AG then probably yes.

The wider point was that this article was propping up good guys and bad guys and expecting us to come along and respond in a knee-jerk fashion. There are cases where the AG may be acting entirely correctly. Perhaps this is not one of them. Don't know.

<comment><USER13> When a guy running for one office uses the power of his current office to smack down critics, then it gives off a bad smell.

Think about this: if the AG was somebody other than Candidate Corbett, would he have started this inquisition? Highly unlikely, imho.

<comment><USER12> I'm happy not knowing. Perhaps you have already passed judgment.

Let's assume that the guy responsible for enforcing laws at the state level is doing a good job. Should he refuse to prosecute people that have committed a crime against him simply because it might look bad on the internet? If so, he's not doing his job and should be fired.

I think people are responding to this based on a preconceived pattern in their heads -- big guy with lots of power tries to use his power to silence critics. If that's what happened, then lets all call him out for it. He might even be breaking the law himself and deserve to go to jail. Do you have proof that this is the case? Or is this just a witch hunt? Because I haven't seen proof yet, and the default position when not seeing proof is agnosticism -- I don't know. Something wrong with not knowing? Or is this the internet, where any kind of story must be commented on by people taking on an air of expertise, no matter how flimsy the data or preliminary the information?

I'm not taking you to task personally. Hell, I offered an opinion myself. But my opinion ends in "Beats me", as it should at this point in the game. My opinion was also offered in hopes of persuading people _that there are usually two sides to every story._ Or put another way -- I am naturally drawn to condemn this man and be outraged. Because I am naturally drawn to this response, I make very, very sure that I make a devil's advocate case and see how it sounds. Once I did this, I'm thinking there is much to be learned, and in those cases I try to default to giving people the benefit of the doubt.

Isn't this just common sense?

(There is another question about ethics -- if it looks bad it is bad. I'm considering that out-of-scope. My intent was to think about this in terms of legality. This was a thought experiment, after all)

</comment></comment></comment></comment></comment><comment><USER14> What happened to freedom of speech? Does it really matter whether you know if I said it, or Joe Blow? We have the right to say it.

<comment><USER15> Yes freedom is good. Slander, libel, and shouting "Fire!" (falsely) in a crowded theater are bad.

A delicate dance indeed.

</comment></comment><comment><USER16> I can't believe how much crappy JS is on that page. Viewing the source is astounding.

</comment><comment><USER17> And here I thought in this country free speech was protected by the first amendment. But I guess this guy knows better, seeing as how he is the chief legal adviser for an entire state.

Why am I not surprised that this guy is a republican?

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

Don't get me wrong I'm sure there are plenty of cases of democrats trying to silence the opposition, but it sure seems like this happens much more often with republicans.

<comment><USER18> I think both parties have a shaky record on free speech. For example, the McCain-Feingold Act regulates campaign speech. Senator McCain is a Republican. Senator Feingold is a Democrat. President Bush, a Republican, signed the law. The chief opponent of the law was Senator Mitch McConnell, the leader of the Republicans in the Senate, who challenged the law in court all the way to the Supreme Court. More recently, Democratic President Obama criticized the Supreme Court's ruling in Citizens United which rebuffed the government's attempt to ban political speech.

<comment><USER19> This is an aside, but I object to the notion that money equals speech.

<comment><USER20> In fact, allowing corporations to donate willy-nilly to political candidates could quite possibly curtail the political speech of their employees: imagine working for a company, and finding out that by working for them you have inadvertently funded a political ideal that you are in direct opposition to.

Would you quit your job over it? In this market? Maybe a lot of folks on here would, as our skillsets are in demand.

What about a factory worker?

<comment><USER21> How is that any different from a union taking stands that you don't agree with?

If I have a right of free speech and you have a right of free speech, how is it that together we don't have a right of free speech?

In other words, I'm not referring to the "corporation as person" doctrine but the "corporation as voluntary association of people" reality.</comment></comment></comment></comment></comment>


Ask HN: How do you do Docker CI? - <AUTHOR>

I have a bunch of Docker containers all hooked up using docker-compose (previously fig). I have found that services that advertise themselves as "Docker CI" services are usually just talking about using Docker to run their build workers.
I would like a continuous integration service that preserves the Docker build cache between runs, instead of spinning up a completely new worker/filesystem/build context. Otherwise, builds take absolutely forever. Ideally managed (unlike https://github.com/groupon/DotCi, which doesn't come with CircleCI's ready-to-go per-build database).
The only thing I've found is TeamCity (old, you can't version build tasks in a yaml file easily like you can with CircleCI, you have to maintain infrastructure, etc). Quay.io doesn't provision a database like CircleCI and Travis do, so you have to bifurcate dev and prod and install one inside the container and run unit tests during the container build (ew - you can't spawn into an unbuilt container to debug things!).
How do you run continuous integration on your Docker container cluster? <comment><USER2> I think TeamCity can achieve your needs: it has the ability to create a "build chain", where dependent builds can specify "Build on same host as <docker build>" and "Re-use existing (successful) build".

I do something similar by provisioning Joyent VM's as a dependency of a build chain that requires a build to be run on those VM's.

The most recent TC release can persist your build configuration to VCS (say, a private github proj.), so you do get some level of vcs-managed build configuration.

</comment><comment><USER3> Drone [0] seems what you would like to use. Define all your containers as service containers and create/define steps to test how those service containers co-operate. Of course, you must test each service container individually in separate drone builds.

[0]: [https://github.com/drone/drone](https://github.com/drone/drone)</comment>


Ask HN: Review my startup, symbyoz.com - <AUTHOR>

I know ... 4am is not a reasonable time to go to sleep (nor to wake up) but hey, you know the rap ...
So I completed a major iteration of my side project, an online notebook to organize and share ideas and advices with friends.
Here's the site http://www.symbyoz.com
The site is still a bit slow and rough in the edges but it's functional. Your feedback and advices will be really precious.
Also I'm looking for driven and talented programmers, hackers or enthusiasts who aren't afraid to tackle big challenges, handle hard problems and put up with the pains of starting a new business.
If interested, contact me directly on the site.
Thanks. <comment><USER3> For what it's worth, my eyes went directly to the web comic, and I was on panel 2 when the image refreshed. It got to the third strip before it occurred to me that a mouseover might pause the rotation.

<comment><USER4> I'm on an iPhone and I even can't stop it. After two times I was not able to finish a strip I got pissed and left the page.

<comment><AUTHOR> Oh yes, the site is not ready for smartphones yet. Sorry about the pain. If you are in the area, I'll buy you a beer to make it up ! :)

</comment></comment></comment><comment><USER5> typo: "Thanks for registering! Please ake the time"

Landing page:

make the logo bigger upper left. make the logo subtitle a phrase that is formatted as a direct answer to the question "Why are you here?" make the logo aligned with the body text to make the left axis of alignment on your page stronger. Consider changing the background gradient to something radial rather than linear and more stylized. Maybe a darker luminosity to emphasize that the notebook page is the foreground. Do not use centered alignment in your content page. Always use left or right alignment unless you have a really good reason for making it centered. There isnt much repeated style between elements Uh... I'm going to stop mentioning design stuff and just say you should either hire a designer before a programmer\hacker or get this book for some really easy to act on practical advice: [http://www.amazon.com/Non-Designers-Design-Book- Robin-Willia...](http://www.amazon.com/Non-Designers-Design-Book-Robin- Williams/dp/0321534042)

App: On notes under an idea I like how it hides unnecessary interface features unless you mouseover..... I think you need to incorporate this design methodology in more places with cruft on the site. I am allergic to cruft, squint until your eyes go blurry and see how many different "chunks" make up the page and try to limit it to 5-7. Tags is plural but only seems to accept one thing. You need to show "state" better. For example you know how some sites use breadcrumbs? Like it will say "Metamemetic's Ideas > A First Idea > Notes" or something and they are all links to navigate back and forth, and they are all the same style in the same location and instantly convey where I am in the site. You don't have to use breadcrumbs just make it super obvious for the user to tell where they are and what they are doing at all times with no clutter around whatever the "state" indicator is. and don't have multiple "state" indicators, just one all informative one.

overall it's a good idea though with a good code foundation! Props for getting something out there

I would try and leverage the fact that you are creating tree data structures with ideas and notes to do some interesting things in the future, but just improve the UI and UX first.

[I don't know if I would use the site personally because I use Git to version control my local repository of random ideas, but there could be a good target market. Not sure who your target market is... you should pick one and post on whatever forums they are currently sharing ideas on and see what features they would need\want to use your site. Or if your site ends up functioning better as a personal planner\to do list than a collaborative editor, maybe market it as increasing ones organization and productivity]

<comment><AUTHOR> Great return, thanks. If you are or know a good designer you can recommend, I'm a taker.

</comment></comment><comment><USER6> I know a lot of "Web 2.0" sites are all look a bit the same, and I appreciate you going for a different look, but for me this doesn't work. If you look at other sites they tell you exactly what they are trying to sell in big letters, with clear screen shots on the front page.

Your video tells me little (well done though, that must have taken some time), three different sign-up options on the home page is messy, the link to screenshots down the bottom is just hyperlink, "Product Tour" needs to be at the top somewhere.

Do you really need a Captcha? I find them a pain in the arse, why not wait until you have a spam account problem.

As another commentator says, depending on your audience the Killer Startups and Best of the Web logos may actually devalue your product. If you are aiming for HNers etc definitely, however the general public seem to like these sorts of things sometimes.

</comment><comment><USER7> <http://www.symbyoz.com> Clickable.

</comment><comment><USER8> hi! when the site loads, the facebook buttons need some time more to load (of course). but they don´t seem to be in a container, so some elements jump when the buttons are rendered.

the signup button is very hard to find. you could make it much bigger "web 2.0" style and with green background (which is good for conversion rates).

i´d replace "watch the video" with a big play button in the middle of the image. this way, more people will watch it.

the signup form: i´d mask the rest of the site when it´s showed, to make clear that the user can´t do anything else right now.

the captcha is centered now, but the text fields not. i´d right align the captcha.

when first opening the signup form, the error message for the full name is shown in pure red. for me the error should only be shown when the user tries to submit the form. and you could use a more decent color for the error messages.

add a * to all required labels (and "fields with * are required), so the users knows which are required. right now he has to wait for error messages.

the checkbox and notice texts (at the bottom) would look better if they were all aligned with the text fields.

i´m not quite sure, whether purple is the right color for the notice text.

for the checkbox: it´s a lot clearer if there is first the checkbox and then the label for it. (i personally try to always use wordings with I instead of you. feels better somehow)

i like the js validation when the user inputs the needed information. - <USER2> done!

hopefully i was not too hard to you :) martin

<comment><AUTHOR> nope ... perfect feedback and great advices :-) thanks a lot martin

</comment></comment><comment><USER9> I may be completely wrong on this, but didn't Google try something almost identical and eventually realised it just didn't work, or the user base wasn't ready for it and Wave-ed goodbye to it only recently?

I don't want to bring down your site, but if they couldn't make it profitable that says something to me.

However, I liked Wave, and wanted it to stay, so if you system is good I'd use it, but I wonder if enough people would?

(oh and the rotating comic, totally agree very annoying)

<comment><AUTHOR> Wave was a great product, still is actually. I liked it a lot too.

But let's get it straight ... Symbyoz is far from being Wave.

Wave is an awesome brute force of technology. We're not even close. Wave intent was to replace email. We don't (meh ... Google is a legend, I'm a lone hacker). Wave was a self sufficient (closed?) communication and collaboration tool. We aren't. We talk to Facebook, Twitter and GMail right off the bat. Wave target was to rack up every e-mail users out there. We obviously would like to dream about it, but ... :)

If Symbyoz grows, it can become a lot more like Wave. For now, it's just a social platform to quickly jot down ideas and share with friends.

I think of it more as the secret child of 43things and Evernote who's being raised by Facebook.

(And for the rotating comic, I'll definitely take care of it :))

Thanks for the feedback !

</comment></comment><comment><AUTHOR> Just some words to thank you all so far for the feedback. You guys sure are no brittle matter, but that's also why you rock. I mean it. I've at least "pack- minified" most resources to make things a bit faster. It's still slow (YSlow ~ 70) but hopefully more bearable for demanding hackers :). I also wanted to renew my call for help. I'm still looking for people (koders or designers) who would be interested in making this a great (and cool) journey.

</comment><comment><USER10> 1\. You need a better design, the logo seems kind of stupid for me. The whole design take me back to 2000/2002.

2\. Why load all these scripts. I mean, I'm in the home page, you shouldn't load validate.js, form.js... Also lot of commented HTML, this only add unnecessary loads to your page. Also avoid inline CSS.

3\. You need a good copywriter or may be some copy writing lessons since you just started. Someone already mentioned it.

<comment><AUTHOR> 1\. 2000: Y2K fear passes, Bush is elected as president through Supreme Court Decision, 2001- 9/11 attacks, Beginning of war on Terror, 2002-2003: Beginning of War in Iraq. Yuck... Bad memories. You need a beer too.

2\. As I stated, the site is still in development (as you stated, there's still a lot of work on the design). I'll clean it up.

</comment></comment><comment><USER11> I think the "See a sample page" link should be more prominent. maybe it's just me, but I have very little patience for new web apps that don't let me see what they look like without signing up, so I was about to leave yours until I noticed that link down in the corner.

the intro video you have doesn't really tell you anything either, I'd replace that with a screencast of someone using the site.

</comment><comment><USER12> I like the overall look and feel of it - kudos for getting it going. I think the little graphics (Killer Startups and Best of the Web) kill any credibility that the site was trying to build - at least to me - so I would suggest dumping those. The comic doesn't size well. I couldn't easily read it even though it was a PNG (so I didn't bother).

</comment><comment><USER13> You seem to have at least four slogans:

1) Share ideas and advices

2) Organize and share ideas with your friends

3) The best place to organize and share your ideas.

4) It's who you know

You should choose one, and show it only once. I would go with the first, but change advices to advice.

</comment><comment><USER14> I am primarily a Java developer too, but I have very rarely seen any hobby projects being done in Java/Jsp. I wonder if there is a reason why you did it in Java? What framework do you use? Does Java needing a lot of memory have to do with the slowness of the site?

<comment><AUTHOR> No I've used java because it was faster for me to code something functional. There's no other specific reason.

The slowness is due to the tons of non-minified javascript loaded, to the not- yet optimized number of requests to the back-end, and also to the fact that my VPS is not a competition server.

It's actually a miracle already that it renders the way it does. I understand only now how sensitive the HN community is to these aspects, I should have understood it already I guess ... hackers like clean efficient code, and it's all good feedback.

</comment></comment><comment><USER15> The site is painfully slow. When I clicked on "See A Sample Page" it took around 20 s to load with over 200 requests. It loads 61 external javascripts and 16 stylesheets (combine and minify). When I tested the page in YSlow it got 54 / 100 performance score.

<comment><AUTHOR> Planning on it ... as it's still in development I didn't bother doing that just yet. Thanks for the feedback, yes, it's painfully slow at loading :(. It gets a bit better after.

</comment></comment><comment><USER16> I didn't like the design too much, but the video is really great! I think it should be on the main page. I would remove the cartoon, and some other content, and put the video inline. Did you create it your self, or did you get an agency to do it?

</comment><comment><USER17> Why should I use this web app instead of updating my Facebook status or posting a tweet?

<comment><AUTHOR> Are you using Facebook or Twitter to share ideas?

</comment></comment><comment><USER18> I misread your URL as simboyz. What? A gay simulator?

<comment><AUTHOR> Look what I've found for you :) <http://www.bookglutton.com/glutton/simboyz/15408></comment></comment>


PinePhone $149 Linux Smartphone Could Support Ubuntu, Sailfish, Maemo, LuneOS - <AUTHOR> https://liliputing.com/2019/06/pinephone-149-linux-smartphone-could-support-ubuntu-sailfish-maemo-luneos-and-more.html <comment><USER2> > It'll have four hardware kill switches for the BT/WiFi, modem, cameras, and > microphone. They'll be hidden under the back cover to keep you from toggling > them accidentally.

Looks like they're very serious about security/privacy.

<comment><USER3> This is a great idea - though having it under the cover means it's difficult to toggle and therefore people will keep cameras and mic's on all the time.

</comment></comment><comment><USER4> > 2GB RAM

I certainly hope they follow up with a model with higher specs.

I'm also not a fan of 2:1 displays which are for consumer scrollers (Instagram etc) and not general use enabled by having a real OS.

</comment><comment><USER5> the camera is bad but the rest is not bad especially for the price but as they say also for the environment which is/will be the main draw plus the price range. i am actually more interested in this at this price range; i'm not big on putting down a lot on a smart phone.</comment>


If Google+ is Good, Why Does Google Force it On Us? - <AUTHOR> http://readwrite.com/2013/05/22/if-google-is-good-why-does-google-insist-on-forcing-it-on-us?utm_source=feedly&utm_medium=feed&utm_campaign=Feed:+readwriteweb+(ReadWriteWeb)

<comment><USER2> The complaint seems backwards: the actual inconvenience the the author is posting about is a direct result of the fact that Google _isn't_ forcing users into Google+, but instead making it an aggressively promoted opt-in option for users of many of its existing services, providing a list of the benefits and a chance to opt-in when an existing service which it can enhance is used.

If it was actually _forced_ , this would not occur.</comment>