Ask HN: Does my landing page make you want to sign-up? - <AUTHOR> http://twitspare.com/

<comment><USER2> No, not even a little bit. Here are some notes:

1) Content-Type meta needs to be immediately below your opening HEAD tag, or it has no effect

2) Load your style after meta, but before javascript

3) jquery should be loaded before jqueryui - and if you're loading jqueryui from google, why not jquery as well?

4) fixed-width designs should still max out at 960px to 990px wide, not 1160px (most browsers are 1024x768)

5) seriously look at your CSS - a page with this small amount of content should not need 833 lines of CSS

6) in the HTML, you shouldn't need the extra content wrapper around everything. Fixing your CSS should let you remove it

If you need some light help with this, feel free to let me know. I can volunteer a little time over the weekend.

<comment><USER3> It sort of sounded like you were going to tell him why the page didn't make you want to sign up, but then you listed a bunch of (mostly) non-visual design considerations. What was it about the page that didn't make you want to sign up? (I'm just curious now.) By the way, the notes you did list were good and he should follow those guidelines.

<comment><USER2> The look had already been critiqued, and I agreed with what had been said about it.

Aside from the design of the page (and presumably, the site), I judge code quality at almost the same level of importance.

In this case, both are severely sub-standard. I'd never hire this guy, and I'd never use a service he was involved with. Why should I believe he'd be any more careful with my private information than he was with his design or code?

In the end, it's a trust thing. His page does not generate any trust with me.

</comment></comment></comment><comment><USER3> Man, some of the comments in this thread have a very high harsh to helpful ratio.

\- The page could use more structure. The elements seem to be floating around but they're not anchored in a way that feels right to me.

\- The page is way too big. Bring it down to about 960px (Rust also covers this in this thread). You should also center the layout.

\- The logo should be a little larger, and you might consider centering it. Though if you do center it, make it large enough to fill the space so that it doesn't look awkward.

\- Re-style the highlighted text at the top ("Social advertising on Twitter, Done the right way."). Consider placing it under the logo

\- Tell us more about how it works or what requirements your service will impose. The more information you can provide the better.

\- There is a bit of free-style capitalization going on there which makes it annoying to read.

\- The form for submitting your Twitter username could stand to be a little smaller. Maybe make the label ("Type In Your Twitter Username:") stand out a little more. I think it would look better if the calculate button was to the right of the input box.

\- The "We pay you per click!" text should be restyled, maybe with some kind of icon or in a box with rounded corners. Right now it just looks like it was an afterthought when really it's an important bit of info.

\- Contact, about, and privacy policy are a must have. The less you can tell who made a site, the shadier it looks.

\- Where's the little Twitter bird? :P

I hope that helps.

</comment><comment><USER4> I don't really feel like signing up. Using Safari the text overlaps the input text box and the scroll bars are always showed even though I stretched the browser wide enough to show all elements.

Also your message is confusing. I'm guessing that you want to ask me: "How much can you make tweeting small ads on Twitter?" and then you'll provide the answer on the next page explaining in details how exactly.

I would re-think your strategy here, and would think about having this on the landing page:

* Headline asking "How much can you make tweeting small ads on Twitter?" * Subtext that explains what I need to do to make money * Testimonials of people like me showing how much they can earn with their thumbnails * Simple form asking for my Twitter username and a big button saying something like "Tell me how much I'm worth!"

Just some random thoughts, hope it's helpful :)

<comment><AUTHOR> Thanks Matt! I've changed it up. As i didn't realize it was showing like that in other peoples computers it was showing up great in mine.

Check it out now.

Its just a pre-launch landing pge btw.

</comment></comment><comment><AUTHOR> Edit: Ive taken the feedback and improved the site.

@slater: I didnt even realise the webfonts werent showing up until you told me! Thank you.

@Rust: Yes, its a CSS file im using for the main site when it launches. I havent separated the two. So what you see is the main site's homepage css.

Bad i know. But this was very much a "Quick and Dirty Kind of thing".

</comment><comment><USER5> Nope. Looks like it was put together by someone about 2 hours into their "Learn HTML in 24 hours!" book.

<comment><AUTHOR> I'm definately not a designer. But wow lol. That bad?

All jokes aside though. What do you think i could do to make it more appealing?

<comment><USER5> For one thing, your CSS seems to include web fonts, but none of the browsers I tested (FFox, Safari, Chrome, all the latest public/stable/official versions) seem to show them. So all text is in Times New Roman.

Edit: Wait, it seems the web fonts are shown in the "scrolltohere" DIV when I enter a twitter username. But the top text is still Times New Roman.

</comment></comment></comment><comment><USER6> The text "Type In Your Twitter Username:" overlaps the entry field. It shouldn't.

Overall it looks amateurish, and doesn't give me any confidence that there's anyone capable of paying much money behind it.

</comment><comment><USER7> "Woah! Quit your day job! You could be earning.. $4624132.5 Per Month!"

My bullshit meters just broke. It makes me question the validity of your product.

<comment><AUTHOR> Its all based on arbritray calculations ive made thus far according to the market-click-through-rates. If you got that high? Wow.

</comment></comment><comment><USER8> No. I have enough money and I don't have any use for a twitter account.</comment>


Does anyone read blogs? - <AUTHOR> Friends say I should start a blog.  I like to write, and I have lots of wide-ranging interests and ideas.  So why not post some of that to the web and maybe make some money?
I find myself drawing a blank about what I'd blog about, though.  Who would I write for?  What would be their purpose in reading?
I seldom read blogs.  I find them boring.  With one exception, I don't see why anyone would read them.  Seriously, does anyone except your spouse and closest friends care what random thought crossed your mind today?
The exception is blogs about fast-moving domains, written by people who themselves follow the domain closely.  Following the blog would be of interest to others who want to keep up with that domain.  Indeed, my understanding is that the most popular blogs are about gossip, politics, and specific industries.  This is what we used to call "journalism".  Similarly, a kind of blog that I can see the value of is a blog about some skill, like "lifestyle design" or getting straight A's in school.  Not "any random thought", but "the latest about a specific topic from a very good source".
I hate to shoot down an idea without even trying it.  Without a purpose for writing, though, I don't see how to even try writing a blog.  Any suggestions? <comment><USER2> Don't blog about your life, blog about what you've learned. I blog about interesting code and languages that I come across. I like writing how-tos on my blog because often I will later use my own how-to to do something I had forgotten down the line. It's all a matter of personal preference, but blog about something that you find interesting.

<comment><AUTHOR> I like this: "blog about what you've learned". That would capture just-learned things every day, while they're fresh, and thus serve a useful purpose for me --and therefore provide a good anchor for social connection through the blogosphere.

<comment><USER3> Seconded. I started blogging at betterexplained.com to tutor myself; I wanted to store just the 'aha moment' that made a concept click.

Writing helps you remember ideas and discover new ones in the process.

</comment></comment></comment><comment><USER4> Never blog for other people.

If you want to write commercial content, do so. Find a tight niche, call it a blog (it's really a serial newsletter but let's not quibble) and saturate it. This -- I think -- was what I had in mind when I started blogging.

But it sucks. Look, if you can blather on about the same topic for 3 years God love you. I can't. I like all sorts of things. I like writing about them. The fifth time I write a story on debugging I'm through with debugging for a while.

So I decided to continue blogging because I like writing. Hell with everyone else, including friends and family. I'm not writing to be cute or narcissistic. If anything, I'm blogging to a) help sort out my thoughts by writing them down, and b) leave something behind of myself for my great- grandkids besides a bunch of computer code somewhere. I can't email the little buggers, but I can leave some essays and bits of trivia.

So blog if you like writing. Blog commercially if you like that sorta thing, but no matter what you do, focus inwardly instead of externally. It shouldn't matter whether you have 10 readers or 10 thousand.

<comment><AUTHOR> I like the idea of writing to sort out my thoughts. I've been doing this for years in email with a couple friends. We've sent about 15,000 emails back and forth so far. Writing those brainstorming emails happens naturally because I know who I'm writing for. I know what they care about and how they think, and I see ways to move their minds in ways they'd find enjoyable.

What I mean by "a purpose" is to affect an audience somehow. I don't normally write "for myself". Writing, at least the way I experience it, is translation: here's how the reader currently understands things, here's some content, now invent a way to make that content comprehensible in terms of that way of understanding. Of course, doing this translation leads to improved insight into the subject matter, just as writing a program leads to improved insight into the problem domain.

<comment><USER4> I'm currently doing a "Does God Exist?" series of posts because, well, the argument interests me. So I took a bunch of books on all sides of the issue and am going through each of them, writing a quick review as I complete each book (along with a recap)

I've found that the act of making yourself physically write something on paper makes you remember better. This effect is amplified if you're trying to explain it to somebody else in an essay. So the blog is kind of a mind "power tool", enabling me to sort through tons of debate and get to the few arguments and insights that matter to me. On top of that, it'll be around next year when I've forgotten a lot of the detail, keeping the "good parts" near the top of my cognitive heap. (not stack)

</comment></comment></comment><comment><USER5> I write a blog that's precisely of the sort that you think can't be interesting to others. Random thoughts about anything that interests me; rants, arguments, (rarely) mini-essays on anything in a long list of my interests. Very eclectic.

It's extremely popular, with readership in five figures, and typically more than a hundred daily comments on various posts. One of the best things about it is that it has many readers who are smarter than me, and/or more knowledgeable than me on just about any given topic I'm interested in. I've made a few really good friends and a lot of friendly acquaintances through the blog, all over the world.

Maybe my case is a rare exception; that wouldn't surprise me. I've tried, for example, to write the same kind of eclectic random-thoughts blog in English -- my primary blog is in Russian -- for a few years, and never got more than 100-200 readers. Maybe I wasn't giving it enough attention (it's semi-dormant now, though I'm trying to find tuits to revive it), or maybe in English, a non-specialized blog has a harder time attracting attention. Or maybe much of it is random. Among the blogs I read (40+ in English, a few hundreds in Russian), most widely-read ones are either by famous people or specialized to some topic; but there are some exceptions like me.

<comment><AUTHOR> What's the URL of your blog? A friend of mine can translate. I'd like to see how you make this work.

<comment><USER5> avva.livejournal.com

</comment></comment></comment><comment><USER6> Have you checked out PG's site? Rather than a blog, it's an (occasionally) updated set of essays and thoughts. They are usually reviewed by several people before publication (so are higher quality than blog posts), and most of them have a specific point or question which is explored in some detail.

Benefits to this approach are the lack of a dated timeline of posts (so no urge to write because "it's been a week already"), and you only write when a particular issue strikes your fancy.

A negative of this approach (for PG this is less of an issue) is that it is difficult to gain a readership this way, as there is no regular "feed" of content coming from you. If anything is true about online readers, it's that they like to be fed.

<comment><AUTHOR> Is it really true that online readers like to be fed? Do many people actually follow blogs, or do most blogs get read only when an article comes up in search-engine results? Is there any data on this?

BTW, I do indeed like the "occasional essay" approach--and especially having some reviewing and filtering. The #1 problem of the web these days (any entrepreneurs reading?) is signal-to-noise ratio.

<comment><USER7> "Do many people follow blogs?"

Feedburner stats indicate that blogs do have followers. But do they get _read_? I suspect the number of readers is far lower than subscriber count.

In particular, I think nobody reads tweets, no matter how many followers you think you have. Twitter is mainstream perhaps in that many people write. The only people who read are PR people scanning for a few keywords at a time.

I've been thinking about this for a while: <http://akkartik.name/blog/2009-05-19-21-30-46-soc>

</comment></comment></comment><comment><USER8> <http://steve.yegge.googlepages.com/you-should-write-blogs>

[It is also a good example in support of at least one of the points that it itself makes]

</comment><comment><USER9> _"Friends say I should start a blog"_

This is not a good reason to start a blog :-)

I read just under 20 blogs (by which I mean real people's blogs, not tech news that just happen to use the blog platform to publish).

The best blogs are defined by a very strong focus on a particular topic. This both because it gives the writer the opportunity to explore themes at lengths, and it gives the reader a certain amount of predictability in what they are going to find.

Narrow-focus blogging also has the advantages of allowing you to build a more diverse audience. This may sound counter-intuitive at first, but the more subjects you touch the more you end up narrowing your audience to people who think like you.

I think your instincts are correct. "Random thought" blogs are not going to have a wider audience than your friends and family.

<comment><USER10> > This is not a good reason to start a blog :-)

I dont know - we dont really have enough data about his friends and why they think this.

It could be good advice. For example if I was considered expert and insightful on, say, a security forum my friends there might suggest I start to put some of it in a blog for a wider audience :)

To the OP: It really depends how good a writer you are and what sort of topics you can write about. If your engaging to read then your audience might range across a number of sources.

Yes, people do generally read a small set of core blogs - but we also sit and read interesting stuff that goes by our radar. You might not get people checking your site every day but if they can find good content on there once or twice a fortnight (say) they might look out for your links on HN et all. That, to me, is as good a readership as any :)

(if you in it to make money though that's a different matter)

</comment></comment><comment><USER11> "I find myself drawing a blank about what I'd blog about, though. Who would I write for? What would be their purpose in reading?"

I hate to self-promote like this, but seeing as how I run a startup (in profile) dedicated to helping bloggers find stuff to write about and "cure writer's block" (our little slogan), I figure I should say something.

Yes, you should definitely, definitely start a blog. If you're comfortable with it, I'd say get firstnamelastname.com. I got paulstamatiou.com four years ago and have been writing on it consistently since then and I kept it professional and devoid of too many personal things. I talked about stuff that interested me (technology) and often lots of little guides showing how I was able to do this or that. A lot of my posts have just been about things I've been working with over the last few days. New piece of software that I find really handy.. blog post, but I try to add info that others wouldnt have.. tips on how to use that, or getting it setup quickly etc.

Over the years my subscriber numbers slowly went up and now I have a decent following. It's still more or less "professional" in terms of the content I put up there and it has ended up being a portfolio of sorts for myself. Was it worth it? DEFINITELY. It got me a Yahoo internship in California (and several other job offers), I've been flown around to check out various events for different companies, got invited to speak at a conference in Europe (and expenses paid), and I was even in a Nike commercial as they found me online as a "real" user of Nike Plus. Again, I dont want to make this like I'm tooting my own horn... just trying to say that you need to start a blog!

only reason why you might not want to start a blog:

*you dont think you would be able to write consistently

The only thing worse than not having a blog IMO is having one that hasn't been updated in weeks or months.

I could go on and on but I'll just point you to my HN profile where you can email me. :-)

<comment><USER12> _The only thing worse than not having a blog IMO is having one that hasn't been updated in weeks or months._

Can you explain why an infrequently updated blog would be bad?

I suppose you believe that it makes you look bad somehow. But what evidence do you have that that is really so?

</comment></comment><comment><USER13> There are many types of blogs: the family-oriented types, the 5-stories-per- day magazine-style types, niche review/guide types, "semi-anonymous" technical opinion/discussion types, etc.

Some styles of blogging are more suited for money making, but obviously take a lot more effort (especially so when you are competing for eyeballs against established full-time blogger teams).

Techies and geeks often tend to use blogging as a form of intellectual expression, about their opinions on their field of interest, or to talk about things they've done or are working on. This type of blogging is often reactive to others' opinions, news from major outlets and aggregators, etc, and often become decentralized conversations.

Family-oriented blogging usually takes the form of show-and-tell when they're going through something exciting in life and blogging can be a nice complement to their IRL social lifes.

In the end, blogging is what you make out of it. It's not a magic pot of gold and can look like anything between an old-school Geocities guestbook and a professionally written magazine.

If you want to do it for fun and/or for expressing yourself, just go ahead and do it. Who cares if no one is reading (yet)? But, if you want to do it for money, then treat it as a step into a journalism career, not as a retirement fund.

</comment><comment><USER14> I read a number of blogs. The best ones focus on specific niches but often use those niches to explore the wider world. For example, Marginal Revolution at <http://www.marginal> revolution.com is nominally an economics blog, but it also discusses foreign travel, ethnic cuisine, books, and more. The blogs I contribute to try to follow the same general principle: The Story's Story at <http://jseliger.com> focuses on books (except for the present top post, which is about keyboards—sometimes exceptions are interesting) and Grant Writing Confidential at <http://blog.seliger.com> . The latter is part of my family's business and so has a purpose beyond random musings.

If you're thinking about writing a blog, read Penelope Trunk's comments: <http://blog.penelopetrunk.com/penelopes-guide-to-blogging/> which are invaluable if not always accurate. In addition, I wrote a post called "You're Not Going to be a Professional Blogger, Regardless of What the Wall Street Journal Tells You" that got slashdotted and ought to dissuade you from the idea you're going to make money directly at it: [http://blog.seliger.com/2009/06/17/youre-not-going-to-be- a-p...](http://blog.seliger.com/2009/06/17/youre-not-going-to-be-a-pro/) .

"Without a purpose for writing, though, I don't see how to even try writing a blog. Any suggestions?"

As others have said, don't write a blog if you don't have a purpose. Your purpose should come from something you care about deeply enough to know something about that you'd like to transmit to others: in my case, that means books, chiefly, but also grant writing. For many HN readers, it probably means programming. Remember too that the deep knowledge/writing/transmission process isn't linear, but recursive: I've probably learned more about books by trying to sort my ideas about them out in a logical, rational way than I would if I just read a lot (this, incidentally, is why good schools require you to write a lot: writing forces you to embellish the ideas you do have and often to come up with ideas you didn't have previously).

</comment><comment><USER15> Yep, I had a similar problems when deciding to write a blog. First of all personal stuff may not be important/interesting to others OR maybe you may not feel comfortable putting too much personal details. I wrote a couple but always shut them down soon. Finally I started <http://socialapp.wordpress.com>

I have been going to a lot of meetups in the Social Space (Facebook, Myspace, Web Startup's etc) as my side projects/interests lie in the same area. In the process of these meetup's I have learnt a lot and seen a couple of good demos. So, I started to blog about those events or the demos that I see there for everyone else's. After any meetup, I typically have a descent number of topics to write about.

The primary reason for me to start a blog was to get better in writing skills and convert the thought process to text that fellow reader can comprehend. I am not really looking to make any money via blogging at least in the near future.

Another theme I have seen is that a couple of people write on funny incidents that happened to them during the day or weekend. It could be a funny/embarrassing incident, but they do a great job of expressing it that even strangers will find it amusing to read it.

Edit: In the process I also opened a twitter account (@socialapp) to see if I would be able to promote my blog. It's been a descent passive experiment as well =)

</comment><comment><USER16> I started to blog mostly for myself (Dec 2008), and initially that was the audience. After a while I started to find my focus areas and now I have changed the name of the blog twice - and become a tech source magazine like publication with a bunch of writers and hundreds of readers (maxping.org). Money? No, at least not yet - unless $60 from google adsense counts. I recommend to just start doing it and find out how it folds out.

</comment><comment><USER17> I think you just wrote your first entry.

</comment><comment><USER18> Remember to use the word "Random" in the title, then everyone will know not to read it :(

<comment><AUTHOR> That is the truth. The word "random" in a blog title says, "I have no purpose here other than to be a windbag." At least it's honest.

<comment><USER18> Or, "This blog will get 10 posts before halting forever."

</comment></comment></comment><comment><USER19> I subscribe to _many_ blogs that cover my technical interests and a few personal ones. I avoid blogs with adverts or that are set up to make money. I generally use an RSS reader to follow these blogs (and Twitter and other sources).

</comment><comment><USER20> Then start writing/blogging anything that interests you. Over time, you'll get the groove on and start forming topics that may pull in readers.

</comment><comment><USER21> Start a blog on a subscription basis. Your friends can pay up their subscription and if you hit some threshold, then you start it. The old ... let them put their money on the table gambit. Other than that, I agree with the other comments. Blogging is something that you should do if you're prepared to do it with no reward.</comment>


Show HN: Hadouken – a cross-platform, extensible BitTorrent daemon - <AUTHOR> https://github.com/hadouken/hadouken

<comment><AUTHOR> Author here, some background information.

I'm a C# developer by trade and currently in the end-phase of a total rewrite from C# to C++ for this project in order to get it running cross-platform as well as increase performance.

This is my first C++ project and any feedback is welcome!

<comment><USER2> Why to C++? What kind of performance problems did you see beforehand? And isn't C# probably viable for cross-plattform, especially with Microsoft opening the .NET ecosystem up more and more? (I don't want to suggest that you did anything wrong, I'm genuinely curious)

<comment><AUTHOR> I'm gonna try to address everything at once here :)

(Private) trackers are very picky about what clients they allow. This leaves me with few alternatives when it comes to BitTorrent libraries, Rasterbar- libtorrent being one of them. Rasterbar-libtorrent is awesome, and written in C++.

I wrote a C++/CLI wrapper for libtorrent to bridge the native/managed gap and did the rest of the work in pure C#. Awesome, except C++/CLI is not cross- platform and will not be made cross-platform in the MS CoreCLR releases. So to become cross-platform, I either have to rewrite everything in C++, or use P/Invoke. I never got the P/Invoke stuff to work well with the C++ nature of libtorrent, which left me with a C++ rewrite of Hadouken.

As it turns out, C++11 is quite pleasant to work with, and with the Poco framework I actually made some real progress quite fast. I also ran a Ubuntu VM on my Windows dev-machine to make sure everything worked smoothly as I went along.

Performance may have been the wrong word, maybe I should've used memory usage, but I'm currently in the finishing stages of having it running on the older R-Pi boards, so even though 90% of the users will run it on some sort of desktop/server machine, some will run it on the R-Pi where memory is limited.

<comment><USER3> How does it compare to rtorrent performance-wise?

<comment><AUTHOR> In what regard? I only have numbers for Windows, and mostly memory-based numbers which will vary depending on load. Here's some recent numbers I pulled,

\- It idles at ~1.5-1.8MB with no torrents.

\- With 10 seeding torrents, it runs at ~3.8-4MB memory usage.

However, these numbers may or may not run true depending on usage and workload.

</comment></comment></comment></comment></comment><comment><USER4> Interesting name.</comment>


Ask HN: Where/how do I learn very basic API skills? - <AUTHOR> I am learning to build software since this January. Now I know the very basics of CSS+HTML, some Javascript and C#/.NET. Enough to create from scratch, publish and sell a very simple SaaS (in my case, the first "S" could stand for "spreadsheet", so simple is my service).
I learned with Codecademy, Treehouse and try and error with the enormous aid of Stack Overflow. But now I want to create a very simple site using a API. And I can't find the right place to learn it. I mean, even Codecademy have this thread, but everywhere all API learning resources look aimed at more advanced developers.
There is no basic tutorial on how to do it. I mean, very, very basic tutorial, telling me how to establish the connection, where to write my code with the GET/POST/PUT/DELETE, what the hell RESTful means and if this is something relevant to my basic code or just a theoretical base if you to go further down the road.
So I wonder, do I have to be a proper javascript developer to even start learning API? I am not a proper C#/.NET for sure, and still could build a simple logic with try and error. I guessed I could do the same with API, am I wrong?
PS: I already have a project in mind, I want to build a tool using the API of HNSearch: https://www.hnsearch.com/api So I want to learn generic API development, not a specific one. <comment><USER2> I have a feeling you are a little confused about the meaning/concept of an API. Not quite sure what you try to ask. :)</comment>


Utilizing GPUs in the Cloud - <AUTHOR> http://www.scalescale.com/utilizing-gpus-cloud/ <comment><USER2> For web servers, especially those which are acting as load balancers and SSL terminators, let alone if deep packet inspection is involved, hooking GPU will probably accelerate performance dramatically.

I managed to find few projects[1] and papers out there, and it would interesting to see others or take active part in such project, indeed.

[1] [http://http.developer.nvidia.com/GPUGems3/gpugems3_ch36.html](http://http.developer.nvidia.com/GPUGems3/gpugems3_ch36.html)

[https://code.google.com/p/engine-cuda/](https://code.google.com/p/engine- cuda/)

[http://www.manavski.com/downloads/PID505889.pdf](http://www.manavski.com/downloads/PID505889.pdf)

<comment><AUTHOR> there's some abandoned project on image resizing for nginx [http://wiki.nginx.org/Expressz](http://wiki.nginx.org/Expressz) \- seems like most opensource gpu stuff from googling is outdated or abandoned.

</comment></comment><comment><AUTHOR> here's a list with links to service providers: [http://www.nvidia.com/object/gpu-cloud-computing- services.ht...](http://www.nvidia.com/object/gpu-cloud-computing- services.html)</comment>


Why Sony should release the Interview online - <AUTHOR> http://www.theverge.com/2014/12/17/7407493/why-sony-pictures-should-release-the-interview-online

<comment><USER2> i think who ever brought down sony did the right thing. Who in the right mind would think making fun of a soverign nation is ok in the grandios scale that sony was about to do. Get ur brain on the right track and think!!

<comment><USER3> So poking fun at another country in a fictional movie is not OK, but compromising a company's network and leaking their internal communications is?</comment></comment>


LinkedIn accessing FB and email contacts - jor-el http://serializethoughts.wordpress.com/2013/10/17/linkedin-accessing-fb-and-email-contacts/

<comment><AUTHOR> How would this actually work? It might actually be an issue on the other end: the people suggested to you have linked their email/FB accounts to LinkedIn, allowing LinkedIn to get their contacts and matching them against their database.

<comment><USER2> Yeah, I just spotted something odd last night.

LinkedIn has just suggested I know my father through an email address I setup and tested once or twice several years ago using my Gmail account.

The address is used as the contact point for an enquiries button on a charity Web site - the actual address is obfuscated on the site and so the only way it could have leaked out is from my Gmail testing.

My father never uses the email account directly to send email and he's not on LinkedIn.</comment></comment>


Ask HN: Is Revenue Sharing a scam? - <AUTHOR>

Recently I was offered some work as a programmer by an acquaintance from highschool, outgoing friendly guy. He said in return for making his website that I would receive 5% Revenue Sharing of the website. This seemed odd to me as I've never herd of doing work for a share of a startups revenue. From what I know most startups don't produce revenue ever so in essence Revenue Sharing would be a scam. Does anyone else feel this way?<p>Edit: for grammar <comment><USER2> Is the product the developed site or does he sell a material product that he needs a website to sell it. If you are building a web app, that will be the product 5% is a low offer for basically doing all the work to create the business. If he has an existing business, with an existing product that he already has sales for, and he just needs a website to sell online, then you will have to do the math, it may be great and it may be a horrible offer.

I turned down an offer once to receive 1% or profit on every transaction that came in through some web-services I build in lieu of cash up front. It was the worse mistake I ever made. That service did over 50 mill in profit the first year alone. I should have done the math and took the risk. So it all depends.

<comment><AUTHOR> You make a good point, the website is offering a new service. A service which my friend will be doing most of the work providing the service.

<comment><USER2> So 5% of his ongoing labor, is this perpetual? How much is the average service contract and how long do you think it will take to build what he is looking for. Also you will want to get a pretty good contract in place. As time goes on people tend to appreciate work that was done in the past less than they did when they needed and start to look at the fees associate with that work as a free ride. You will want to make sure that a year or two down the road he does not decide that you have made enough and try to renegotiate or cut you out completely.

</comment></comment></comment><comment><USER3> A new business isn't necessarily a startup, if he has a solid plan to be generating revenue from day one then it would be a business. A startup (as defined by Wikipedia is):

        A startup company or startup is a company or temporary organization designed
        to search for a repeatable and scalable business model. These companies,
        generally newly created, are in a phase of development and research for markets.
        The term became popular internationally during the dot-com bubble when a great
        number of dot-com companies were founded.

You can stand to make very good money from revenue share, the question is are his projections good, are you confident in them? Does the business model stand up?

<comment><AUTHOR> I actually do have confidence in my friend and his business model. But what seems like a bit but to me is that I think he may look for an out from the company within a year or two of getting off the ground. This may pose another problem like the revenue share being dropped from any deal made to sell the company.

</comment></comment><comment><USER4> Revenue sharing schemes are fairly common in areas where revenue from an individual's performance can be directly measured. For example, it's common for sales staff to have a low base salary + 10% of their sales as a bonus.

It's much more difficult to get right when you are building long-term assets (such as a website) instead of making one-off sales. If you build a website and leave, do you keep getting revenue share from it forever? If the company branches out to a new field, is that included?

</comment><comment><USER5> No revenue sharing is not a scam, but be sure to put it in contract.

But the fact that it's not a scam might not mean it's a good deal. Do an estimate of the cost of the project considering your rate at your job and the time the project will take.

Compare it with what you're expect to make with the 5% in the next few years.

Maybe they are added benefit of doing the project with him, like experience with a new tech or having first client of a side business making web apps.

</comment><comment><USER6> Like a few of the other posts - make sure you put it all in writing and manage the expectations of both parties (eg. how long does it last for? can you review revenue data etc)

</comment><comment><USER7> It is not a scam per se; unless you deem investing, or taking risks a scam.</comment>


Show HN: CheerMeUp - Schedule a cheerful email and brighten someone's day - <AUTHOR> http://cheer-me-up.org Built at DowncityJS Hackathon http://downcityjs.com <comment><USER2> You should include some examples of those emails in the website so people can find out if they like what you are sending or not. :)</comment>


1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs - <AUTHOR> http://tech.marksblogg.com/billion-nyc-taxi-kdb.html <comment><USER2> In my experience, kdb+'s k and q (which is broadly speaking a legibility wrapper around k, which again broadly speaking is APL without unicode) are phenomenally fast for dense time series datasets. Though they can struggle (relatively, still pretty fast) with sparse data that's not really what they are built for. They were built for high-performance trading systems, and trading data is dense.

If you like writing dense, clever regexs (which I do) then you'll love k & q. The amount that you can get done with just a few characters is unparalleled.

Which leads to, IMHO, their main drawback: k/q (like clever regexes) are often write-only code. Picking up another's codebase or even your own after some time has passed can be very hard/impossible because of how mindbendingly dense with logic the code it. Even if they were the best choice for a given domain, I'd try to steer clear of using them for anything other then exploratory work that doesn't need to be maintained.

<comment><USER3> That's more on you than it is the language though. You can write obtuse write- only code in any language.

I will concede that there is a culture of trying to be a bit _too_ clever on the k4 mailing list but it's perfectly possible to write maintainable code in kdb+

<comment><USER4> But from what I recall, the syntax is terse _by design_ \- this is not inherently bad, though. In other mainstream languages, you have to go out of your way to write obtuse code (e.g, code golf).

I'm guessing that best way to address this issue is through liberal use of explanatory comments.

<comment><USER3> Terse syntax isn't an issue, you just need to get used to reading it. Using 1 character variable names is another matter though.

There is no reason not to use camel cased variable names and indent functions, if/else blocks etc, and when written this way the code can be perfectly legible even to non q programmers.

Something else that leads people into the write-only trap is that the usual way of working with the language is to use the REPL loop while working, where you can tend to be doing multiple things on 1 line. It's just laziness not to reformat and clean up the code afterwards though.

<comment><USER5> > There is no reason not to use camel cased variable names and indent > functions,

There is: it makes the program bigger. Program source code length is significant, and if you have more lines, you have more opportunities for bugs.

<comment><USER6> Is this supposed to be a joke? Or maybe related to some weird coding environment?

Long variable names may take more characters, but there is no way they increase bugs.

Indenting(!) doesn't even take many more characters if you use tabs...

<comment><USER7> Mathematical formulas don't use long variable names. They use x, y, and various greek letters.

<comment><USER6> This is generally (amongst mathematicians) considered to be a problem, not a good thing (Source: work with university Math departments).

Edit, see [http://mathoverflow.net/questions/8295/origins-of- mathematic...](http://mathoverflow.net/questions/8295/origins-of-mathematical- symbols-names) for the confusion this causes..

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I've build columnar OLAP databases and database engines in C++ for work. Now I'm doing it in my free time. Based on my experience the Phi and it's architecture is very exciting for OLAP databases workloads.

Reasons:

\- Even in a OLAP database you end up with quite a few places that have very branchy code. Research on GPU friendly algorithms on things like (complex) JOINS and GROUP BY is pretty new. Additionally complex queries will functions and operations that you might not have a good GPU implementation for (like regex matching)

\- Compression. You can use input data that compressed in anyway that there is a x86_64 library for. So you can now use LZ4, ZHUFF, GZIP, XZ. You can have 70+ independent threads decompressing input data (it's OLAP so it's pre- partitioned anyways). (Technically branching, again)

\- Indexing techniques that cannot efficient implemented on the GPU can be used again. (Again branching)

\- If you handle your own processing scheduling well, you will end up with near optimal IO / memory pattern (make sure to schedule the work on the core with local memory) and you not bound PCIe speed of the GPU. With enough PCIe lanes and lots of SSD drives you process as near memory speeds (esp. when we'll have Xpoint memory)

So the bottom line is if can intelligently farm out work in correct size chunks (it's OLAP so it's prob partitioned anyways) the the Phi is fantastic processor.

I'm primarily talking about the bootable package with Omni-Path interconnect (for multiple).

</comment><comment><USER9> I've been using kdb+/q for a long time (7 years now) - and can attest to its speed. Objects are placed in memory with the intention that you will run vectorized operations over them. So both the memory-model and the language are designed to work together.

Lots of people complain about the conciseness of the language and that it is "write-once" code. I tend to disagree. While it might take a while to understand code you didn't write (or even code you wrote a while ago), focusing on writing in q rather than the terser k can improve readability tremendously.

My only wish is that someone would write a free/open-source 64-bit interpreter for q - with similar performance and speed to the closed version. Kona (for k) gets close [https://github.com/kevinlawler/kona](https://github.com/kevinlawler/kona)

<comment><USER10> Some other k-inspired languages to have a look at:

\- [https://github.com/johnearnest/ok](https://github.com/johnearnest/ok)

\- [https://github.com/zholos/kuc](https://github.com/zholos/kuc)

\- [https://github.com/ngn/k](https://github.com/ngn/k)

\- [http://t3x.org/klong/](http://t3x.org/klong/)

\- [https://github.com/tlack/xxl](https://github.com/tlack/xxl)

</comment></comment><comment><USER11> Nice writeup. If you are interested in learning KDB/Q, please take a look at this book: [http://code.kx.com/mkdocs/qformortals3/](http://code.kx.com/mkdocs/qformortals3/)

<comment><USER12> or for a really quick high level overview you can use this: [https://learnxinyminutes.com/docs/kdb+/](https://learnxinyminutes.com/docs/kdb+/)

it's a really beautiful little language once you get into it :-)

</comment></comment><comment><USER13> I absolutely love this blog series. Can't wait to read what's next :)

First time I noticed (mention of) recap at [http://tech.marksblogg.com/benchmarks.html](http://tech.marksblogg.com/benchmarks.html)

<comment><USER14> If he made the layout a bit uglier, and made the language more esoteric and generally difficult to understand, this would make a fantastic academic paper.

But seriously, what a wonderful world it would be if all papers were this well written.

</comment></comment><comment><USER15> Under a second to do an avg across 1.1 billion rows spread over four machines. That's pretty amazing.

<comment><USER16> For a columnar database, that's a continuous chunk of memory. Assuming 32bit q defaults to 32bit int, 1.1 billion integers across four machines means each 64-core (with 4 threads/core) KNL chip is averaging over 275M elements of int array, or 1.1M 32bit int operations per thread. Now think again whether that's amazing or not.

<comment><USER17> You're not accounting for the memory bandwidth at all. Yes, that's still amazing. Try doing that in opentsdb.

<comment><USER18> ~4.4 GB in 150 ms are just about 30 GB/s.

</comment></comment></comment></comment><comment><USER19> This was a good idea for a test. I'll definitely check out the author's other stuff. Commenting briefly on cost: while the article mentions the free 32 bit version early on, the actual benchmarks were done using the commercial version. I've had the impression the comercial version was cost prohibitive for us poor folks. For those interested in experimenting with Xeon Phi though, it looks like you can get started for ~$5k: [http://dap.xeonphi.com/](http://dap.xeonphi.com/)

<comment><USER20> If you just want to meddle with a Xeon Phi, you can get some as cheap as $300: [https://www.amazon.com/Intel- BC31S1P-Xeon-31S1P-Coprocessor/...](https://www.amazon.com/Intel- BC31S1P-Xeon-31S1P-Coprocessor/dp/B00OMCB4JI/ref=sr_1_1?ie=UTF8&qid=1485379661&sr=8-1&keywords=xeon+phi) , though that's from the 3100 rather than 7200 family, and so won't perform as fast. That kind of money puts it more into the hobby territory, though.

<comment><USER21> Is there a difference in how you program the different Xeon Phi families?

<comment><USER8> With the new generation there is now a difference. This is because this generation has Phis in both addin card (PCIe) and a bootable CPU package (when you run Linux or windows or whatever on the Phi).

Generally with the PCIe one you're running something like OpenCL and with system CPU package you run threads and processes like you normally would.

Technically you could run software directly on the old addin cards since they boot to Linux but you had handle the distribution, running and communication of your software with the host. (you could run any x86_64 binary)

<comment><USER22> Do you still need the costly intel compiler suite to run some C++ code on it?

Honestly they make it pretty hard to hack with as a device. It could succeed as a device if they let devs easily create cool applications with it.

<comment><USER8> Both gcc & llvm can compile binaries targeting the Phi. Since it runs in Linux (as addin PCIe card or host Linux CPU) it can run any kind of ELF x86_64 binary. They also support generating AVX-512 instruction of the Phi.

</comment></comment></comment></comment></comment></comment><comment><USER23> I don't see how these results provide much useful information in terms of being able to say x is faster than y.

The hardware doesn't seem consistent across different benchmarks. He says it's fast for a "cpu system", but for practical purposes Phi competes more with GPGPUs.

Would this be just as fast with one redis system with 512GB ram? I don't know too many apples to oranges here.

<comment><USER24> The author isn't testing just the software but combinations of various software/hardware systems, including for example PostgreSQL on an i5 CPU, 16GB RAM and 850 SSD hardware: [http://tech.marksblogg.com/billion-nyc-taxi-rides- postgresql...](http://tech.marksblogg.com/billion-nyc-taxi-rides- postgresql.html)

<comment><USER23> Great, and btw I think it's cool and I enjoyed reading it.

But what useful conclusions can be drawn from it?

<comment><USER25> All conclusions are only valid for similar workloads, but each of MapD and GPUs, Q/kdb+ and Xeon Phi, Redshift, Athena, Big Query, Presto, and Elasticsearch claim to be fast, inexpensive, easy to work with, and otherwise great for Big Data. Which ones really are fast? How fast is fast? How much is this going to cost? Do I need 5 nodes or 50?

A few examples of some useful conclusions:

\- Just because a relatively well-optimized PostgreSQL database on a regular workstation takes 5 minutes to run a query doesn't mean you can't get special hardware to run that query faster than you can type.

\- Spark + S3 + Amazon Elastic Map Reduce look like an ideal tool to work with large data, but they're pretty slow compared to better tools, and even compared to plain PostgreSQL.

\- HDFS really is a lot faster than S3.

\- Performance of an Xeon Phi 64-core CPU is within an order of magnitude to an NVidia Titan X.

\- Loading 104 GB of compressed data into Q/kdb+ expands to 125 GB with and takes about 30 minutes, but on Redshift expands to 2 TB and takes many hours to upload on a normal connection, plus 4 hours to actually import!

\- It might cost $5000 to custom-build a GPU-based supercomputer that can do these queries in under a second, but you can run similar queries if you're willing to wait for 5 minutes each by spinning up instances for a few dollars an hour plus a few more dollars an hour for storage, or by just running PostgreSQL on your workstation.

Also, not a conclusion, but it's incredibly useful to have a simple example exactly how to configure the tool and import some CSV data

<comment><USER23> These conclusions don't seem very useful because either they are already well established or are not valid. Some examples:

Just because a relatively well-optimized PostgreSQL database on a regular workstation takes 5 minutes to run a query doesn't mean you can't get special hardware to run that query faster than you can type.

 _Already well established for years with systems like redis, and more recently with gpu databases, and other techniques posted on HN regularly._

Spark + S3 + Amazon Elastic Map Reduce...is pretty slow compared to better tools, and even compared to plain PostgreSQL.

 _Not valid because it doesn 't generalize. It so much depends on type of work being done, system architecture, etc, that you can only say it may or may not be true._

HDFS really is a lot faster than S3.

 _This is already well established, Amazon states aa much right in the docs:[http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr- pl...](http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-file- systems.html*)

Performance of an Xeon Phi 64-core CPU is within an order of magnitude to an NVidia Titan X.

_Not precise enough to matter because getting within 10x difference is not close to being competitive.*

Loading 104 GB of compressed data into Q/kdb+ expands to 125 GB with and takes about 30 minutes, but on Redshift expands to 2 TB and takes many hours to upload on a normal connection, plus 4 hours to actually import!

 _I don 't see how it's possible for 104GB of csv text data to decompress into only 125GB. For cvs to compress only ~20%...doesn't make sense._

It might cost $5000 to custom-build a GPU-based supercomputer that can do these queries in under a second

 _No, two problems here. The hardware in question could have used 1 cheap CPU instead of two expensive Xeons and been much less expensive. Bigger problem: The MapD software itself will be $50,000._

<comment><USER25> The speed comparisons may be well known to you, but as someone only really using trivial desktop app SQLite databases, they weren't known to me. Thanks for pointing out my errors!

> I don't see how it's possible for 104GB of csv text data to decompress into > only 125GB. For cvs to compress only ~20%...doesn't make sense.

The CSV file itself is around 500 GB. The internal representation, which might use binary formats for numbers, or compress text, uses 125 GB. Redshift expands it to 2TB for all the indexing and mapping.

> Bigger problem: The MapD software itself will be $50,000.

Ouch. That's a rather large oversight. Is the author affiliated with MapD, perhaps?

</comment></comment></comment></comment></comment></comment><comment><USER26> This is the comparison to the titan X / mapD article I was looking for. Still looks like the gpu is very competitive.

Sort of meta, but Mark's job seems awesome. Gets all these toys and writes about configuring them. (The actual configuring is probably a pain but still)

</comment><comment><USER27>
        % cat startmaster.q

        k).Q.p:{$[~#.Q.D;.Q.p2[x;`:.]':y;(,/(,/.Q.p2[x]'/':)':(#.z.pd;0N)#.Q.P[i](;)'y)@<,/

Looks like line noise... :D

</comment><comment><USER28> At what point will CPUs out parallelize GPUs and will we be able to move vidoe rendering back onto the CPU?

I see that as being something I'd very much like.

</comment><comment><USER29> Pretty wide array of technologies covered in these benchmarks. I wonder how ClickHouse will fare, should be very competitive.

</comment><comment><USER30> How does Phi's MCDRAM compare to GDDR5 (wrt throughput)?

<comment><USER31> According to wikipedia, the fastest GDDR5 can do 256 Gbit per chip[0]. I don't know how many chips are typically used. MCDRAM in the article does 400 GB/s, or 3,200 Gb/s. That would require 12.5 of those GDDR5 chips, assuming they scale linearly.

[0]: [https://en.wikipedia.org/wiki/GDDR5_SDRAM#Commercial_impleme...](https://en.wikipedia.org/wiki/GDDR5_SDRAM#Commercial_implementation)

<comment><USER17> GDDR5 can typically do 240GB/s access time on a typical GPU, and there are multiple chips on many cards (Tesla K80). The newer cards use HBM2 and can do 732GB/s ([http://www.nvidia.com/object/tesla-p100.html](http://www.nvidia.com/object/tesla-p100.html)).

<comment><USER32> HBM2 is 1024GB/s (256 per stack).

<comment><USER17> Kind of. Nvidia lowered the voltage on their P100 so it does not hit those rates. Theoretically it can go that high, but the power draw was too large. Next gen we'll likely see that.

</comment></comment></comment></comment></comment><comment><USER33> Has somebody here experience with Jd and could comment on the status or the performance? Thanks!

<comment><USER34> The interpreted Jd is fast, but you need the compiled, commercial license Jd, or you used to, for the speed test.

I love J compared with K, but that is because I found it first, and the differences between J and K are minimal, but a different enough to keep me using J.

<comment><USER35> I think jd is mostly plain old interpreted J. There are a few shared libraries to add functionality to core J, but it's mostly just J. You can probably get a non-commercial license if you ask nicely.

<comment><USER36> > You can probably get a non-commercial license if you ask nicely.

This was my experience. I got a nice email from Eric Iverson in response along with the activation key.

</comment></comment></comment></comment><comment><USER37> Nice to see some KNL usage outside the traditional large HPC centers :D

<comment><USER38> Yes, I remained a bit skeptical, but it seems to be taking off after latest iteration.

</comment></comment><comment><USER39> If the combination of such languages, high-performance hardware, and large scale compute problems is interesting.. the startup I work for in Mountain View is hiring...

<comment><USER40> :D Hope things are well by you!

<comment><USER39> And you too sir!

</comment></comment></comment><comment><USER41> I get the distinct feeling this is not the usual price for a Xeon Phi. Still, might keep an eye to see if it comes back into stock.

[https://www.walmart.com/ip/INTEL-SERVER-CPU-SC7120P-XEON- PHI...](https://www.walmart.com/ip/INTEL-SERVER-CPU-SC7120P-XEON-PHI- COPROCESSOR-7120P-1-2G/147170233)

</comment><comment><USER42> It looks like year is extracted from pickup_datetime at ETL, so hence its not a fair comparison against the other databases that do this at runtime in Q3 and Q4. In something like MapD Q3 would be nearly as fast as Q1 (~20ms) without the extract function, which involves relatively complicated math.

</comment><comment><USER43> Wow, they are some incredibly impressive numbers. Great write up. HT to Mark

</comment><comment><USER44> Unbelievably fast! Interesting blog tbh.

</comment><comment><USER45> for reference the city is New York City taxi rides from 2009-2015 and there's about 500GB of metadata

[http://tech.marksblogg.com/billion-nyc-taxi-rides- redshift.h...](http://tech.marksblogg.com/billion-nyc-taxi-rides- redshift.html)

</comment><comment><USER46> Astonishing speed given the scale...

</comment><comment><USER47> All lots of fun, but kdb has an eye watering cost of 200k dollars per year per server.

Here's hoping some combo of Apache Arrow (also cache aware, much more language stack flexibilty), Aerospike (lua built in), Impala, and others, can finally take on this overpriced product, which has had a lack of serious competitors for 20 years, owing to its (price inelastic) finance client base.

<comment><USER48> > Apache Arrow (also cache aware, much more cross platform)

kdb+ is available for raspberry pi, is that cross platform enough?

[https://kx.com/2016/06/08/kx-releases-raspberry-pi-build- wit...](https://kx.com/2016/06/08/kx-releases-raspberry-pi-build-with- libraries/)

<comment><USER47> 32 bit. Please be serious. You know full well that for all non-toy work kdb is exhorbitantly expensive.</comment></comment></comment>


Ask HN: Is an interview now equivalent to a first date? - <AUTHOR> A question based on a recent experience: I just interviewed at 2 different places.  On-site interviews for half a day, met with 4 to 5 people and parting words from the HR ladies: "Thanks for coming, I'll gather feedback from the team and get back to you in 2 to 3 days.".
3 days later nothing.  After 5 days I drop a quick note to both HR reps and get a reply "You were great but not exactly what we are looking for right now".
Now, in both cases I had decided at the end of the interview that it wasn't a good fit, and they probably realized the same thing.  But I found it incredibly rude that they didn't just send a quick email to let me know about it.
Then, I checked with HR at my current place: "When we interview someone and tell you that they are not a good fit, do you get back to them to let them know?" "Not always."
I brought this issue to my CTO, pointing out that it was a terrible way to manage relationship with the dev community in our area.  Am I the one out of touch here?  Is this behavior wide-spread?  Is interviewing now similar to dating? We throw nice parting words "It was great seeing you, I'll be in touch" while we are both supposed to know that none of us will call the other? <comment><USER2> With my company it depends on how well the interview went.

If you didn't do well - we tell you with-in a few days.

If you did well enough to continue to be in the running, it could be awhile that you hear something until we're done our interviewing, but this is made clear to the folks in the interview.

Our HR department is pretty aggressive at ensuring people don't wait to long for an answer. I really think more companies should do that.

</comment><comment><USER3> > Is this behavior wide-spread?

Yes, it's a universal problem and more often than not, the bigger the company-- the worse they are.

In recruiting circles, "candidate experience" is a perennial topic. The Bigger Take-Away, HR doesn't belong in the hiring business. It seems counter- intuitive, isn't that what HR is supposed to do?

Consider that instantly you understood how this reflected poorly on your company's relationships with the Dev Community. HR doesn't care about that, they don't hang with those people. More importantly, there's a negative impact on the bottom line. And if you can't ship by deadline because you're under- resourced, that impacts your bonus. Shoulder shrug from the HR flunkies, they get paid the same no matter what.

</comment><comment><USER4> I have had this happen quite often (so the behavior is widespread). That being said, I don't consider it rude. It's absent-minded, but not rude. However, you'll find that there are lots of people on both sides of this issue.

There can be a number of reasons for the delay. Remember that, depending on the company, recruiters are often juggling hundreds of applicants, in a pipeline that's constantly being added to. This can actually be very overwhelming. But it can also be a delaying tactic: you did okay but not that well, so they're waiting to see how other candidates do, or waiting to see if another candidate accept the offer or not.

At the end of the day I don't find it rude/burdensome to have to shoot a recruiter a 2-word email: "Any updates?". Or even shorter: "Pinging," and so on (in my subjective experience these have not been taken rudely, and recruiters appreciate conciseness).

Also note that this is a tactic that can work the other way, to delay interviewing or accepting offers (you want to time your offers so you get them at the same time).

I also don't think this has anything to do with big vs. small companies. Big companies might have more applicants but also have better internal tracking systems. Small companies might have just as many applicants per recruiter, and their tracking systems could be all over the place.

</comment><comment><USER5> Truthfully, most organizations have no idea what they are doing. Many times I interview with someone and I don't want them to call me back. If I don't hear back in five days and I want a firm no, I may email them, otherwise I move on. If they don't call me usually it is going to be for some bullshit reason anyway. I'm not bragging, that's just a fact. One manager hinted during an interview lunch that they were being forced to make a diversity hire. I didn't call her back as I am not a "diversity". Why would I call back? You have to expect the worst in companies and organizations. I just take my business elsewhere.

</comment><comment><USER6> It doesn't cost them anything to not tell you that you were rejected so they don't. I think we need some kind of name-and-shaming system so that the cost for companies to not be nice to applicants is non-zero.

<comment><AUTHOR> That's an idea, but isn't what something like Glassdoor is supposed to be? They are mostly known for reviews once on the job, but I believe they have a section about the interview process.

I personally keep a record of a blacklist of companies that don't behave well. It's sourced either from personal experience or friends/co-workers/etc. When they reach out to me I have no problem telling them that their reputation is not good and that I'm not interested in talking to them.

</comment></comment><comment><USER7> I always went through a recruiter which always followed up and got decent feedback for me.

My favorite feedback was we thought he could do the job we just felt he stumbled on the interview.

The another company was what's the minimum he's willing to take?

<comment><AUTHOR> That's a good point. I usually avoid recruiters since I think they had noise to the process and don't really add any value, but in this case they would have helped.

But they probably would have done what I did, pinged the companies to know what was going on. They may have done it sooner and not waited like I did, but the companies probably wouldn't have spontaneously provided the information.

</comment></comment><comment><USER8> You're out of touch. This has been standard interview procedure for a long time.

</comment><comment><USER9> This is so common in the tech industry as we are just "resource"s.</comment>


A Single Div - <AUTHOR> http://a.singlediv.com/ <comment><USER2> The thing I'm always surprised about with these sort of CSS hacks: they don't lag my browser. Like, at all. Even the animated ones! Which is really surprising when you compare them to literally any other way these illustrations could have been created. A sufficient mess of procedural Javascript to render the same designs would lag horribly. The equivalent Flash would make the browser choppy as all hell. As would a Java applet, if those were even still around. (SVG might not, but for the SVG to animate you'd need to use... CSS.)

Is CSS effectively "free", or is this just not a complex-enough example to start to see problems?

<comment><USER3> I definitely had performance issues when I tried taking CSS hacks to the extreme: [http://vitamintk.github.io/One-div- pics/](http://vitamintk.github.io/One-div-pics/)

<comment><USER4> Renders fine on a $99 Windows phone. Crashes the browser on my iPad. The world is a funny place.

<comment><USER5> That's a software difference, software doesn't care bow.much your hardware costs.

<comment><USER4> I suspect my iPad crashes (all the damned time) because it's running a couple dozen services that take up all the RAM. Not that the Windows phone isn't, but it seems to manage them a bit better.

</comment></comment></comment></comment></comment><comment><USER6> CSS can be used to draw arbitrary vector images mostly via the background style.

Probably the easiest way to do this automatically is through adobe illustrator. You can convert an arbitrary file to CSS:

[https://helpx.adobe.com/illustrator/using/css- extraction.htm...](https://helpx.adobe.com/illustrator/using/css- extraction.html)

I guess a lot of people think it's neat in a 'web-hack' sort of way, but it's just another way to express the same thing.

Pay no attention to the man behind the curtain.

<comment><USER7> That is not what the author of A Single Div is doing! In CSS you cannot add arbitrary vector drawings to a single div without linking to an image resource as background (SVG in that case).

What the author _is_ doing is using the single div and its two pseudo elements before and after (so effectively the author has three elements to work with) and style the borders, border-radius, background, shadow, text-content, etc. The use of linear-gradient declarations on the background in particular is a big part of a lot of these drawings, because you can add an arbitrary number of them on any element. Look at the Tardis sample in your element inspector and toggle the background of the div; you will see that most of the door panelling and windows disappear. These are drawn with linear gradients where the colours don't blend into each other, but stop abruptly. By layering these 'gradients', you can create patterns, such as cross hatching or a grid of lines.

Some of these are actually really clever.

<comment><USER8> (he -> she)

<comment><USER7> Edited. I usually omit he or she if I don't know the gender of the person referred to. I used _he_ in that byline (I used _the author_ in the main phrases) as the generic pronoun (i.e., _any author of such a single-div experiment_ ), but that may not have been clear from the context.

<comment><USER9> I find "they" almost always works fine as a gender-free singular pronoun.

<comment><USER10> "it"

"that thing"

"the human"

"this being"

<comment><USER11> "They" is a widely accepted gender-neutral (or unknown) pronoun, none of those things you typed are.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Sometimes I like to look at sites like these in IE6 (through BrowserStack) -- not because I expect them to support it, of course; just because it's fascinating to see how far CSS has come. This one is particularly amusing given how rich it looks in any modern browser. [http://i.imgur.com/zGycgtH.jpg](http://i.imgur.com/zGycgtH.jpg)

<comment><USER13> Reminds me of the old browser acid tests.

<comment><USER12> > Microsoft said that Acid3 did not agree with the goal of Internet Explorer 8 > and that IE8 would improve only some of the standards being tested by Acid3. > IE8 scored 20/100, which is much worse than all relevant competitors at the > time of Acid3's release, and had some problems with rendering the Acid3 test > page. On 18 November 2009, the Internet Explorer team posted a blog entry > about the early development of Internet Explorer 9 from the PDC > presentation, showing that an internal build of the browser could score > 32/100.

Ah, memories. [https://en.wikipedia.org/wiki/Acid3](https://en.wikipedia.org/wiki/Acid3)

<comment><USER14> Hm, Safari latest doesn't actually pass Acid3. It crashes Safari Web Content every time, and gets to max 97/100\. Should we be worried?

<comment><USER15> IE and Edge never actually "passed" Acid3 either; as I recall they typically got to scores of 100 but would lag on two numbers, I want to say they were 25 and 69, whereas the test explicitly says that the animation needs to be fluid.

<comment><USER16> Does any browser pass, then? Current Chrome and Firefox both lag on 69 for me.

<comment><USER17> I got Firefox 47.0.1 to pass with 100%, but only when I reloaded the page. It failed the first time with only 99/100\. Passing may require a very fast internet connection or cached data.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> We had a contest at the office, the challenge was to create the most complex illustration with css and a single div, so I created [http://javier.xyz/img2css/](http://javier.xyz/img2css/) (I have to admit that is not as fun nor interesting to create 'single divs' with img2css).

</comment><comment><USER19> Just wondering, is there still any legitimate reason for doing this over using something like svg?

Or is it mostly to show off in the same spirit as obfuscated C contests or demo scenes?

<comment><USER20> It's definitely just showing off what you can do with a single div and CSS, much like your latter examples. It's an experiment in constraints.

However, I could see something like this being useful in the case where you're using a third-party site and are only allowed to edit CSS. You probably don't need something as complicated as a cross-stitched heart, however it does show some techniques for squeezing as much in as possible.

It also could be useful for a Font-Awesome-style icon set, where you just type , although I imagine most people would prefer to just do something like .

<comment><USER2> Personally, I'd prefer

        .icon-flower:before {
          content: url(/flower.svg);
        }

—which would effectively treat the SVG not as an image or background or anything, but rather as a character glyph from a synthesized single-character _graphical-emoji font_ —meaning your SVG design would be display:inline'd at the current font-size, including font-styles (oldschool faux-italics) and text-decorations (properly-positioned and shaped underline/outline drawn before the SVG glyph's stroke.)

The text engine is already incredibly expressive for doing arbitrary vector- glyph layout; so if you're creating your _own_ one-off vector glyphs, why shouldn't you be allowed to manipulate them using the text engine?

<comment><USER21> That's an option if you want your icon monocolored, but else you'll need the other options. Or, if you want a responsive icon, you'll need the pure CSS approach AFAIK.

<comment><USER22> What is a "responsive icon"? Keep in mind that you can just switch the path to the SVG in CSS in the same way that you'd alter properties of a CSS image.

<comment><USER23> [http://www.responsiveicons.co.uk/](http://www.responsiveicons.co.uk/)

</comment></comment></comment></comment></comment></comment><comment><USER7> Here is another collection of such single-div experiments:

[https://github.com/ManrajGrover/SingleDivProject](https://github.com/ManrajGrover/SingleDivProject)

(I have contributed a handful myself)

<comment><USER24> Why would not you put live demos there (instead of the gifs and pngs)?

<comment><USER22> You can't put arbitrary CSS in GitHub readmes.

<comment><USER24> Ohh.. I was not aware of that, thanks for the explanation.

</comment></comment></comment></comment><comment><USER25> Yes, SVG files have come a long way and are quite useful for this type of vector graphics. However there is something so satisfying about knowing that your vector art fits into a single div and comes purely from CSS. Amazing work. These are really visually appealing to me. Soft and welcoming, yet vibrant.

<comment><USER26> I'm on the opposite side. With all the quirks of CSS, all I can think is: "I wonder how it looks in browser X".

<comment><USER27> Most of these do not much more than layering gradients via multiple background declarations. That gives browser developers very little room to screw up if gradients and multiple backgrounds work correctly.

It still remains a hack, of course and I guess there is little use of the technique apart from curiosity and fun.

<comment><USER28> In reality, that layering gradients via multiple backgrounds has still many quirks across current browsers: different pixel rounding errors, different blend modes often produces visually incoherent results - seams, gaps and aliasing [1].

One amusing quip: recently I have been messing with CSS3, tried the most simple use-case for `radial-gradient` I could imagine and immediately ran into Chrome bug [2] not reported at the time. I think it is somewhat illustrative.

[1] Look for example at [http://codepen.io/myf/pen/Bzmmry](http://codepen.io/myf/pen/Bzmmry) in Chrome and Firefox. [2] [https://bugs.chromium.org/p/chromium/issues/detail?id=623714](https://bugs.chromium.org/p/chromium/issues/detail?id=623714)

</comment></comment></comment></comment><comment><USER29> Regardless of the usefulness or practicality of this, the art is really captivating, I really like the style.

</comment><comment><USER30> So much good stuff here (toggling Mickey's :after border-radius is my favorite), but the title is a tad bit misleading, since the ::before and ::after pseudo-elements really act as divs.

[https://www.w3.org/TR/selectors/#pseudo- elements](https://www.w3.org/TR/selectors/#pseudo-elements):

> Note: A future version of this specification may allow multiple pseudo- > elements per selector.

Oh, please, please, please!

<comment><USER7> I really like how some of these make you think about how she did it. The Mickey is so clever with the _box-shadow_ and the _border-radius_ on the ::after.

</comment></comment><comment> c-smile While ago I've proposed at W3C CSS WG so called vector images ( see: [http://sciter.com/lightweight-inline-vector-images-in- sciter...](http://sciter.com/lightweight-inline-vector-images-in-sciter/) ).

With them, without any hacks like those you can define arbitrary shapes in CSS and in :

        div {
          background-image: url(path:c 50,0 50,100 100,100 c 50,0 50,-100 100,-100);
          background-repeat: no-repeat;
        }

Symbols on the right of path: are the same that appear in SVGs path d attribute:

        <path d="c 50,0 50,100 100,100 c 50,0 50,-100 100,-100" fill="#000" />

But in significantly more lightweight manner.

Proposal did not go through. Nobody cares, sigh. So people keep hacking gradients with CSS.

<comment><USER31> At that point, why not just use an svg file?

<comment> c-smile 1\. Each DOM element is about 200-400 bytes (YMMV) in memory. You will need at least two of those. So to parse that SVG and build DOM structure.

2\. Yet just to get that file over HTTP you will need to execute around 40,000 machine instructions. You can use data URLs to encode your SVG but that looks even more uglier.

3\. With such path images you can write:

        button { background-image: url(path: ...);
                 fill: blue;  }
        button:hover {
                 fill: red;  }

With SVG you cannot do that - each SVG is a standalone document. So you will need two such images, see #1 and #2 above.

4\. And one more: CSS needs the way to define arbitrary shapes : [https://www.w3.org/TR/css-shapes-1/#supported-basic- shapes](https://www.w3.org/TR/css-shapes-1/#supported-basic-shapes) . Ugly and far from complete set. Why not proven construct that we already have WYSIWYG tools for editing?

That if to look on the problem as a whole ... But CSS is split on modules these days. Each module have their own authors that do whatever is more convenient for them. Christmas tree design, sigh.

<comment><USER32> Re 3: You can use CSS to change the color of inline SVG on hover. I used this trick for the download button on [https://eggerapps.at/postico/](https://eggerapps.at/postico/)

<comment> c-smile Nothing happens in Chrome and FF on hover of that button.

<comment><USER22> On that website, the styles are on :active (press and hold). It does need the SVGs to be inline with <svg>, though, which isn't great.

</comment></comment></comment></comment></comment></comment><comment><USER33> So were these created with straight CSS the way I'm believing it to be, or using a program from adobe?

<comment><USER7> I don't think that there are programs that generate CSS within this particular constraint of one div. This is more akin to _code golf_ , where you attempt to push the boundaries of what is possible within a strict set of limits.

More information is available here:

[https://github.com/lynnandtonic/a-single- div](https://github.com/lynnandtonic/a-single-div)

</comment></comment><comment><USER34> Lynn's talk at CSS Day is well worth 30 minutes of your time: [https://www.youtube.com/watch?v=I_QKNCn_m_g](https://www.youtube.com/watch?v=I_QKNCn_m_g)

</comment><comment><USER35> Perhaps this is the equivalent of the css zen garden[0] for modern CSS ? :D

[0][http://csszengarden.com/](http://csszengarden.com/)

</comment><comment><USER36>

why is this a thing? what is with empty div? is it necessary?

<comment><USER37> It looks like use them for CSS properties. The background for the outer div is set to #4e6590, the blue background. The background-image of the inner div (and its ::before and ::after) draw the parts of the zipper.

For example, the inner div has background-image of

        linear-gradient(to top, transparent 10px, #aaa 10px, #aaa 15px, #ccc 15px, #ccc 30px, transparent 30px), repeating-linear-gradient(to bottom, transparent, transparent 5px, #ddd 5px, #ddd 10px), repeating-linear-gradient(to bottom, #ccc, #ccc 5px, transparent 5px, transparent 10px);

which draws the teeth of the zipper.

</comment></comment><comment><USER38> A while ago I was looking into the things in this site and I created this Plugin to help me inspecting how it is done: [https://github.com/rafaelcaricio/gradient- inspector](https://github.com/rafaelcaricio/gradient-inspector)

May help you too!

</comment><comment><USER39> Web development looking fun again now that Internet Explorer is out of the picture

</comment><comment><USER40> I'd love a UI entirely run by css, just the one div like this.

</comment><comment><USER41> Nice! Great performance on Chrome.

</comment><comment><USER42> WOW, that's beautiful!

</comment><comment><USER43> I dig, very much. That's all I've got.</comment>


Ask HN: can a web 2.0 app succeed without social media integration? - <AUTHOR>

say I'm working on a web app which has features that make it useful as a standalone product (i.e., it doesn't obtain its value from a community element or some sort of integration of user data from external sites). is it a must to have some sort of facebook/twitter/blog/whatever integration at launch to have a shot at success? it's obviously a bit of work to write and manage code hitting various external APIs, so I'd like to avoid it if I don't think it's a useful feature. I just wonder if not having this integration is some sort of sign to user that it's an amateurish product.
I admit I'm a bit biased, because I make very little use of social networking sites, so I'm not sure how to assess the value of these features. I can see potential value in terms of free advertising, e.g. pushing activity updates from my service to a user's twitter stream. but I just don't know how to guess whether anyone would actually use these features.
I know the answer is "maybe", but just wanted to get some opinions, or examples/counter-examples. <comment><USER2> Without knowing the target audience of the product, or the actual product itsself, it is difficult to say whether people would use these features and whether your site would benefit from having them or be at a disadvantage by not having them.

I think there are plenty of cases where social networking sites are unnecessary, even in a community... for example there isn't a 'post to twitter or fb' on stackoverflow every time you answer a question, the value is in the site its self. However there are many other sites that gain a little something extra by either having the option to authorize a login or share activity through social media (i.e. i think it's cool that pandora tells me that a friend likes an aritst when i'm listening).

Can you tell us a little more about the target market and maybe a little more about what the web app does... saying that it's "web 2.0" is pretty cliche and says absolutely nothing about the actual product.

</comment><comment><USER2> also, to the point of the bit of work to write and manage code hitting the various external API's... most times the developers for these organizations have created well documented API's and code samples for simple implementation of their features on other sites... so it's not like you're reinventing the wheel (although facebook has caught some flak on here for the way they up and changed basically everything about their api and authentication and whatnot when they implemented the social graph, but I've worked with it a little and it doesn't seem that bad).</comment>


UK journalists 'conspiring' to ask questions about police surveillance - <AUTHOR> http://pastebin.com/GXbFvypw

<comment><AUTHOR> Met bars Guido Fawkes and others from asking RIPA questions amid Press Gazette conspiracy theory [http://www.pressgazette.co.uk/met-police-bars-guido- fawkes-a...](http://www.pressgazette.co.uk/met-police-bars-guido-fawkes-and- others-asking-ripa-questions-after-claiming-they-are-working)

Met's extraordinary Ripa FoI refusal [http://order-order.com/2015/02/27/mets- extraordinary-ripa-fo...](http://order-order.com/2015/02/27/mets- extraordinary-ripa-foi-refusal/)

</comment><comment><USER2> Poor police. They must feel so oppressed and under continuous scrutiny...Wait, that reminds me of something else.</comment>


Native Applications with Racket - <AUTHOR> https://defn.io/2020/01/04/remember-internals/ <comment><USER2> Is there any "publishing service" for MacOS that takes a percentage of each sale and allows you to provide build scripts and source code, compiles and tests the application and distributes it on the app store?

If not, do the Apple EULAs prohibit such a service or is it not considered lucrative enough?

I used to develop for MacOS but have stopped supporting it entirely since Catalina, because I cannot be bothered with being locked into Apple's development tools, notarization, the Developer Network, and so on. It just isn't worth my time and money, but I'd still like to distribute native applications. Provided the EULA of such a service would be reasonable (e.g. good protection of the source code), I'd gladly use it, since otherwise all Apple sales are lost anyway. But there doesn't seem to be any such service, and it's IMHO weird that Apple don't offer that themselves.

<comment><USER3> You'd have to give them your signing certificate.

</comment></comment><comment><USER4> This notarization nonsense is being implemented very poorly it sure feels like. Shouldn't we be more focused on sand boxing and default settings for the sandboxes, vs forcing user applications to ask for everything they need? Put the burden on the runner, not the application.

Am I missing something fundamental here?

<comment><USER5> The way to think of notarization is that it's basically the same thing as Windows Defender's Automatic Sample Submission, which sends unknown executables to Microsoft for analysis. Only instead of having the end-user's machine upload the executable the first time it's run, the _developer_ has to upload it to Apple. (This is better from a privacy/marketing standpoint.)

In this case, the user application also had to explicitly request permission to run unsigned just-in-time-compiled code. This makes sense because macOS apps are typically written in compiled languages like Objective-C or Swift, so executing unsigned code usually means someone's doing something bad like a buffer overflow attack. Also, Apple probably wants to collect metrics on how many apps use JIT (and how) so they can restrict it more in future OS releases.

I agree that a well-implemented sandbox seems like a much better solution here.

</comment></comment><comment><USER6> I'm working on a MacOS app and I started with a somewhat similar idea but with Go instead of Racket. I ended up ditching it for pure Swift. The main difference between myself and the author is that I ended up really liking Swift. Otherwise I would have stuck with my original approach.

<comment><USER7> > More importantly, I plan to support Windows and Linux which means that > writing the core in a portable language is going to minimize the amount of > work I have to do as well as the differences between the implementations on > each platform.

That's the main difference between you and the author.

<comment><USER6> I plan to support those too. My hope is that some of the business logic written in Swift will be shared across platforms. So the big difference is definitely how we feel about the language. Our goals are very similar.

<comment><USER8> The last I checked, Swift is not supported on Windows — and Linux support is tentative at beat. I mean, only Ubuntu is officially supported.

<comment><USER6> I can't find anything that suggests Ubuntu is the only officially supported distro. Can you share a reference for that?

I have seen a lot of movement for Windows but you might be right that this could be a problem. My hope is that it gets resolved before I get there. Great point though. I kind of just assumed I could ship Swift on Windows.

<comment><USER8> [https://swift.org/download/#releases](https://swift.org/download/#releases)

</comment></comment></comment></comment></comment></comment><comment><USER3> > it is a completely native Cocoa application whose frontend is built with > Swift, the core business logic is all in Racket

This is generally the way to go if you want to be cross-platform: write your core code in the language of your choice, but make sure you use the platform frameworks for the porcelain. If you do it well, your users won't notice the difference!

<comment><USER9> This is easy to say for Mac, where there's a "true" platform framework. It's not as clear cut for Windows/Linux, and hell if I'm going to spin my wheels writing UI code for ages. It's been beaten to death relentlessly but there's a reason nobody actually does this anymore.

It's also seriously funny that it's the same accounts that argue this stuff every time it comes up on this site. ;P

<comment><USER10> I think at this point GTK is the de-facto "native" for Linux desktops unless you've named your application something that begins with 'k'.

<comment><USER11> GTK has the advantage of having fully capable bindings for every language under the sun, so I would generally agree.

Qt is harder to create bindings for since it's C++, meaning it's more likely that your language of choice doesn't have bindings, in which case if said language doesn't have C++ interop you're stuck.

</comment></comment></comment></comment><comment><USER12> Sounds slow to use RPC with JSON for communication.

It seems that Racket does allow for C-to-Racket calls. You could write a glue program that generates C code that calls Racket functions and returns data, Swift code can then be generated to call that C code. That might be faster.

<comment><AUTHOR> Sending/receiving (plus encoding and decoding) one payload takes less than 100 microseconds on my machine. It's far from being a problem, although you're right that linking against a shared library and making the calls that way would be faster.</comment></comment>