Ask HN: Are there any online MS in CS programs comparable to Georgia Tech's? - <AUTHOR> I am aware that Arizona State, U of Illinois, and U Texas launched online MS in CS programs in the last 18 months. Anyone have firsthand experience in those programs and others that they care to share? I myself am in Georgia Tech's OMSCS but am very curious what these other programs are like. <comment><USER2> In my own opinion...

online programs will never be as good as in person. There is so much learned by being in the same physical location and meeting classmates. Going to physically talk to the professor during office hours. Physically reacting when something doesn't make sense. Also, you just focus so much more; especially with a masters program, you'll be learning so much that you really should be treating it full time...

I feel like PhDs and Masters have been sorta bastardized over the years, they aren't just a way to get promotions and raises, they are for you to MASTER the material. Which takes a lot of time and effort

<comment><USER3> I strictly disagree with you here.

Most of the content in a master's program can be found online (or otherwise in the relevant textbooks) -- if you're paying to do it as a class, you're paying for structure and the piece of paper, and that's about it.

PhDs are start-level research jobs. You'll probably learn things (equivalent to a master's) during your first year or two, but you'll become an expert in your field via a PhD because of the fact that no one else is working on the topic to the same degree of depth that you will be.

(In fact, the fact that this comment conflates PhD with masters makes me suggest that the poster doesn't actually interact enough with folk that have either to have internalized the distinction.)

<comment><USER3> To further my assertion here - most big tech companies that I know of (at least, the ones I've had direct experience with myself) literally puts people with undergraduate/master's degrees into the same hiring pool -- even if folk think they'll get a leg up because they'll have the title of a "master's", it functionally makes no difference at a lot of (top) companies.

</comment></comment></comment><comment><USER4> Are these online Master's programs with a thesis or solely based on coursework?

<comment><USER5> Mostly course work with a capstone project.</comment></comment>


8 traits of successful people by Richard St. John - <AUTHOR> https://www.youtube.com/watch?v=NOl0v54DaXo

<comment><AUTHOR> And to sum up what is told on that video :

The eight traits are :

1\. Passion: Love what you do.

2\. Work: Really hard.

3\. Focus: On one thing, not everything.

4\. Push: And keep on pushing yourself.

5\. Ideas: Come up with some good ones.

6\. Improve: Keep improving yourself and what you do.

7\. Serve: Serve others something of value.

8\. Persist: Because there is no overnight success.

</comment><comment><AUTHOR> The original post is from Lifehacker : [http://lifehacker.com/the-eight-most- common-traits-of-succes...](http://lifehacker.com/the-eight-most-common- traits-of-successful-people-1635017441)</comment>


Amazon 'Fire Phone' - <AUTHOR> http://www.amazon.com/Amazon-Fire-Phone-32GB-AT/dp/B00EOE0WKQ

<comment><USER2> Ok, that is pretty neat. There seems to be a lot of interesting innovation here that Google just sort of missed. (in particular the orientation aspect of accessing alternate views, which could be very powerful if done well).

In some ways it seems like Amazon is disproving my theory that if you open source a big chunk of code that is ok because your level of expertise with the code will always insure you can out execute folks who are not the 'originators.' But that doesn't seem to be the case with Amazon here.

</comment><comment><USER3> Google has broken me.

I won't pay _that_ much for a phone — especially when I know Amazon is making money from my use of it with their app store and their content streams.

This does have some fancy features (why hasn't every phone in the past 5 years had a Firefly option?!) but several don't seem at modern standards. And as I say, they're not worth the cash (or the A&T service).

</comment><comment><USER4> Pretty high-tech and impressive. Nothing super amazing, it's certainly a phone worth consideration, maybe the best on the market for certain people. (Depending on what you look for.)</comment>


Gameduino: an Arduino game adapter - <AUTHOR> http://www.kickstarter.com/projects/2084212109/gameduino-an-arduino-game-adapter

<comment><AUTHOR> Want to share with you hackers my birthday present. Can't wait to hack it!</comment>


Show HN: The most comprehensive app for Heart of the Swarm - <AUTHOR> http://www.sc2enhanced.com/

<comment><USER2> Is it such a good idea to use "SC2" in the name of an unofficial app? I imagine that's entering a legal minefield.

<comment><USER3> I would worry less about the name, and more about using Blizzard's assets ... The player's avatars and the units/races/leagues icons are ripped straight from them.

<comment><USER2> More yikes. This goes to my main concern that Blizzard might take issue with it, because people could confuse it for an official app.

At least it's free. :)

</comment></comment></comment><comment><USER4> Looks cool! Have you considered adding a Smart App Banner? [http://developer.apple.com/library/ios/#documentation/AppleA...](http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html)

<comment><AUTHOR> Thanks for tip! Will add it as soon as I get the chance.

</comment></comment><comment><USER5> awesome. where did you get the data from? specifically, wins, losses, league info, etc. i wanted to try to make a program that reasoned your best chances of winning based on who you are facing and how they play, but the proper APIs didn't exist to get any of this data.

given the reason i was attempting to access the data, i could see why they don't expose it. :)

far be it from me to shamelessly self promote, but i'm not sure i'll ever find a more apt route for promoting this one, so i don't mind. a few months ago i finished a node library that scrapes Blizzard and exposes unit attributes through an HTTP api: <https://github.com/catshirt/sc2-unit-api>

<comment><AUTHOR> I'm scrapping player data (achievements, ladders, history, etc) directly from Blizzard. As for units/buildings information I had to update them myself right now which is a bit of a pain. Last for rankings, I'm taking data from sc2ranks.

</comment></comment><comment><USER6> Not a Starcrafter (term?) at all so I can't comment on the app itself, but your site looks beautiful on my laptop - the parallax effect is great, and the scrolling takes advantage of it despite being only a few screens long (which is for the best). Nice work!

</comment><comment><USER7> Is there a Korean-language version?

<comment><AUTHOR> The app is ready for internationalization but I dunno Korean and I don't have funds to get someone to translate it for me... So no right now.

</comment></comment><comment><USER8> I'm your primary target. The site isn't mobile friendly and I can't really tell what your app does since I can't read the site.

<comment><AUTHOR> Thanks for letting me know! I'll see if I can write up a more mobile friendly version as soon as I get some free time.

</comment></comment><comment><USER9> Let's get an Android port!....and a more attractive mobile website :)

</comment><comment><USER10> You should add support for watching Starcraft streams on twitch.

<comment><USER11> If you watch and follow pro SC2 you may like this old app I knocked up while initially learning iOS and Objective-C: <https://itunes.apple.com/us/app/starlive/id456029193?mt=8>

</comment></comment><comment><USER12> I don't play SC, nor am I interested in the app, but I have to say... your site is GORGEOUS.</comment>


Ask HN:  How important is "rocket science" to startups - <AUTHOR>

Hi,
Reading the article "The Interview with Y Combinator That's Not" earlier I thought there was an interesting angle to be explored.
During the interview, the DirectedEdge team got a question, "So where's the rocket science here?"  This clearly attaches some value to the underlying implementation and algorithms.
How critical is having some super-advanced software tech to startup success? <comment><USER2> I'd go further. Patents are nice to haves for VCs and investors and look pretty on glossy business plans (look at our shiny algorithms and wireframes!). Don't bet the success of your company on your patent portfolio. The fact is, no startups out there succeed in the long run because of their proprietary technology (think facebook, myspace, youtube, yahoo, google, flickr). Even if something is "rocket science" and very hard to build, it might keep your competition at bay for a while. But once, you're successful, they'll always find a way to do it. So, what can you do? Figure out your sustainable competitive advantage. What is the rocket science that will insulate your startup from big competitors? I think that is the angle worth exploring here.

<comment><AUTHOR> Sustainable competitive advantage - excellent phrase. It covers a wider range of possibilities than are implied by rocket science.

One of the reasons I originally posted the question is that I'm particularly interested in one of the ideas that YC mentioned in the startup ideas that YC would like to fund, enterprise software 2.0 (<http://ycombinator.com/ideas.html> see number 5).

My experience in that space is that there are a number of companies that are generating huge revenues using software that could be improved via the "build a better mousetrap" methodology. But basically none of that space requires rocket science, unless you include the ability you have as a startup to use more powerful languages and tools than your standard corporate behemoth.

Now, that said, using more powerful tools might free you up to innovate in ways other companies can't, similar to how PG has touted Lisp as a big strength for Viaweb . . .

<comment><USER2> Tom excellent point. There is a huge market for innovation in the enterprise space. At the financial services company I work for, the average employee uses about 25 applications and has a different username and password for each. And most of these apps are terrible. There is enormous pain in the corporate world and it's an understatement to just build a better mousetrap. Just build something that doesn't suck as bad as their current software; and sell to the business people and upper-middle management decision-makers.

</comment></comment></comment><comment><USER3> First of all, you have to consider who was being quoted (rtm).

Secondly, the statement points to how you protect your IP. If it's something that's easy to make the first time, then it's even easier to duplicate. How do you protect your idea without any kind of "secret sauce"?

<comment><USER4> > How do you protect your idea without any kind of "secret sauce"?

Wrap it in a business model that's somewhat robust to competition. Photo uploading is not technically complex, but the business model to support free is more of a barrier to entry.

</comment></comment><comment><USER5> I think a startup's competitive edge is often not the product or space that they are in but the people on their team. For example, my company is in a pretty competitive space with lots of big corporations as our competitors--but we don't worry because the one thing that News Corporation or Rupert Murdoch doesn't have is me and my team.

</comment><comment><USER6> A better mousetrap is all you need. Implement well - not all that easy to duplicate or there wouldn't be so much annoying software out there.

</comment><comment><USER7> Probably shorthand for "what's your real competitive advantage here".</comment>


How I got a game on Steam without anyone from Valve ever looking at it - pierre-renaux https://medium.com/swlh/watch-paint-dry-how-i-got-a-game-on-the-steam-store-without-anyone-from-valve-ever-looking-at-it-2e476858c753 <comment><AUTHOR> This is a pretty cool exploit, and of course reinforces one of the most important rules of writing software. Don't trust users.

The center of what this kid pulled off to get his game on the front page with no Valve oversight basically amounted to fiddling around with an HTML form data and feeding the back end illegal state information.

The fact that the back end's business logic layer didn't verify and authorize the request is _hugely_ troubling from a big service like steam. What other dragons are lurking in there to exploit? Could I take ownership of someone else's game on the store? Get myself some free games by generating reviewer steam keys? All sorts of interesting activity is possible.

<comment><USER2> >"The fact that the back end's business logic layer didn't verify and authorize the request is hugely troubling from a big service like steam. What other dragons are lurking in there to exploit? Could I take ownership of someone else's game on the store? Get myself some free games by generating reviewer steam keys? All sorts of interesting activity is possible."

This feels to me like saying "I can just walk into a big box store, take something off the shelf and walk out".

Yes, you can. And people do. And yet, outside of extreme circumstances there isn't much these stores do to stop you. Loss prevention is a leaky sieve and can cost more than the loss did.

Heck just steal the steam key from a boxed set in a store. The key itself doesn't have protection. Take a picture of it. Whatever.

Stealing isn't hard, but still we don't do too much of it...

<comment><USER3> > "I can just walk into a big box store, take something off the shelf and walk > out"

Data security is where our intuition formed from real-world experience falls down.

Physical theft in a store is bounded by many factors, not the least of which is someone actually has to carry out the goods without being intercepted. Stores deploy additional security mechanisms to alert on high-value merchandise that is small enough to easily conceal. So stores' losses are bounded by the impracticality of "scaling up" the theft attack.

But digital systems are absurdly brittle. Most systems lack defense in depth and computers are just as good at scaling up the attacker's transactions as the legitimate ones. So once the attacker invalidates even the smallest- seeming assumption made by the developers it tends to lead to complete compromise of the system.

So when you hear "random web developer made the common mistake of relying on client side validation" it's kinda like finding a leak in your submarine's hull.

<comment><USER2> >"Data security is where our intuition formed from real-world experience falls down.

Very sad to see the closed-mindedness in this thread where users reject a very valid and apt comparison because it does not meet their preconceived notion of these models.

Ironically the only factor that "knocks down" our intuition is you, when you reject points without considering them. You knocked down my valid point not fairly, but unfairly, waiving it away without consideration.

>"Physical theft in a store is bounded by many factors, not the least of which is someone actually has to carry out the goods without being intercepted. Stores deploy additional security mechanisms to alert on high-value merchandise that is small enough to easily conceal. So stores' losses are bounded by the impracticality of "scaling up" the theft attack."

Very very sad that you cannot see the obvious and basic similarities.

Do you believe it is as simple to steal 1TB of data as it is 1MB? --- So you agree there are obvious "bounds" to digital that mirror real world?

How about content type? Do you think it's easier to steal data replicated on their general purpose CDN than say account data hosted internally at one of their data centers?

Do you believe that online services don't deploy additional security mechanisms on high-value data?

Do you not realize that digital data losses are bounded by the impracticality of stealing large amounts of data, too?

I hope that users reading this thread will read + think more than they reject + talk because it's very depressing seeing this response here.

<comment><USER3> The recent 'Panama Papers' leak shows that it is indeed practical to steal 2.6 TB of data.

<comment><USER2> And the fact that warehouses are robbed, eighteen wheelers are robbed, trains are robbed, etc shows that it is indeed practical to steal literal tons of goods.

Practical and common, however, are not the same...

(I'll also point out that in my comment I said: is it the same difficulty to steal 1TB as 1MB? I never said it was impossible, just drawing a distinction).

<comment><USER3> "Sony Hackers Have Over 100 Terabytes Of Documents." [https://en.wikipedia.org/wiki/Data_breach#cite_ref-17](https://en.wikipedia.org/wiki/Data_breach#cite_ref-17)

<comment><USER2> "Man steals $280,000 by cutting hole in roof of bank"

[http://www.nytimes.com/2016/04/12/nyregion/thieves- take-2800...](http://www.nytimes.com/2016/04/12/nyregion/thieves- take-280000-from-brooklyn-bank-after-carving-hole-in-roof.html)

We can point to outliers that I admitted exist in my original statement all day long.

Even more fun: my example is temporally relevant :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> Wait. So... making executable code available to hundreds of millions of users on a storefront they trust just takes sending a forged HTTP request?

No cryptographic signing process? No automated software analysis and sandboxing? What the hell was Valve thinking? Watching paint dry is pretty much the best case outcome for something like this. It could well have been Mass Effect 3 on Steam for $5, yet the actual code being ransomware...

</comment><comment><USER5> Moral of the story: If someone tells you about vulnerabilities in your web software, don't ignore them.

</comment><comment><USER6> there's no human interaction on support either: [http://pastebin.com/raw/KNLeB6Aq](http://pastebin.com/raw/KNLeB6Aq)

</comment><comment><USER7> _Watch paint dry_ is also a real game, so to speak; see [https://m.youtube.com/watch?v=ObckU6cpDJ4](https://m.youtube.com/watch?v=ObckU6cpDJ4) (2013) for example

</comment><comment><USER8> I thought Steam was a well-funded and well-engineered organization. Am I wrong?

<comment><USER9> Valve seems to be in insanely well-funded and chaotically managed organization.

</comment></comment><comment><USER10> At least GOG have proper QA.

<comment><USER11> Steam has proper QA. What they didn't have was proper web security.

<comment><USER10> I wouldn't call it proper QA, when they release something like Batman: Arkham Knight which was horribly buggy. GOG wouldn't have accepted such version.

</comment></comment></comment><comment><USER12> This has been posted 18 times so far, yet never hit the front page until now. Max points before was 4.

Is this a record for number of reposts before an eventual front page one?

<comment><USER13> Maybe he found a hack to get his story onto the front page and will document it in part 2.

<comment><USER12> Hackception?

</comment></comment></comment><comment><USER14> We merged a comment into here from one of the gazillion previous posts of this thread; if anyone knows of any other good comments we can do the same for them.

<comment><USER12> Bug report, sort of: in search, this submission says "2 days ago".

[https://hn.algolia.com/?query=How%20I%20got%20a%20game%20on%...](https://hn.algolia.com/?query=How%20I%20got%20a%20game%20on%20Steam%20without%20anyone%20from%20Valve%20ever%20looking%20at%20it&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

[https://archive.is/ZJG4x](https://archive.is/ZJG4x)

Not sure what could cause an older timestamp. Was this somehow flagged and readded or something?

<comment><USER15> It's because of HN's weird duplicate link policy. The way I understand it, When someone resubmits a link, and the second resubmission gets more traction than the original, then the comments/points of the resubmission are transferred to the original submission and the original submission's "timestamp" is set to the resubmission's timestamp. The modified timestamp is used in rank calculations (post rank decays based on age, so a newer timestamp means a lower decay penalty). The HN search site shows the true timestamp, which is why on this story you see a mismatch.

Another way to see this is by the looking at the post ID. The post before this one is 11445139 [https://news.ycombinator.com/item?id=11445139](https://news.ycombinator.com/item?id=11445139) (posted 1 day ago), the post after this one is 11445141 [https://news.ycombinator.com/item?id=11445141](https://news.ycombinator.com/item?id=11445141) (posted 1 day ago), but this post is 11445140 (posted 4 hours ago). By deduction, the original post was submitted 1 day ago sometime in-between the other two.

Basically the system gives credit to the original submission vs the resubmission. It does look like a bug, and I think it is quite confusing, IMO there should be a FAQ somewhere explaining how duplicates work.

</comment></comment></comment><comment><USER16> [https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act](https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act)

<comment><USER16> I don't see why I am being down-voted. This person is admitting to an illegal act. Valve does not have a bug bounty program which means this person had no justification to do this legally.</comment></comment>


Saudi Arabia plans huge canal that will turn country of Qatar into an island - <AUTHOR> https://www.express.co.uk/news/world/1011376/saudi-arabia-qatar-canal-island <comment><USER2> It's an extremely petty move by Saudi Arabia to, essentially, build a moat around Qatar and put a military base and nuclear waste dump right next to it for good measure.

This seems like a PR stunt by the Saudis to intimidate Qatar.

<comment><USER3> Apparently, neither Qatar nor Turkey are following the script regarding Iran's diplomatic isolation. So they get punished in various ways.

[https://financialtribune.com/articles/domestic- economy/76877...](https://financialtribune.com/articles/domestic- economy/76877/iran-turkey-qatar-sign-deal-to-ease-doha-blockade)

<comment><USER4> Which script is it they don't follow?

<comment><USER3> Imposing a trade embargo on Iran.

[https://www.cnbc.com/2018/05/08/here-are-iran-sanctions- retu...](https://www.cnbc.com/2018/05/08/here-are-iran-sanctions-returning- after-trump-leaves-nuclear-deal.html)

<comment><USER4> It's the US embargo on Iran. It doesn't automatically extend to any other country that remains in the Iran nuclear accord. The US can pressure these countries to reinstate the embargo, but the "script" is still US-centric.

</comment></comment></comment></comment></comment><comment><USER5> Yes, what could go wrong</comment>


Ask HN: Why React developers don't want to use UI builder? - <AUTHOR> I'm the author of Structor, it's really handy tool for creating UI for Web application with React components. In this article I made some introduction for Structor  https://medium.com/@alex_pustovalov/structor-as-a-playground-for-react-applications-49accf4544b8#.n75e4q571
Also, I created something like a market for React components, it is convenient service which is integrated with Structor. Through this market developer can install any component into his project in form of source code generator - just like a big repository for components.
Till that time no one has tried to publish even the simplest component.
I'm really wondering, it so needless for developers to exchange with components quickly? <comment><USER2> Biggest challenge for UI Builders is that programming unfortunately has the accepted meaning of typing cryptic colorful ASCII text into an editor. Stuff that makes programming easy is mainly for users who don't know how to program.

Not that I think it should be that way, that's just the psychology of programmers. Of course many don't realize that or won't admit it.

Also some programmers really haven't got the idea of code reuse through components. They don't understand how useful it is. But sometimes it also is in the first category of something that makes programming too easy so they don't want to be associated with that because they want to be known as an engineer that does hard things.

Also, even though people sometimes try new things on purpose, they usually do most things just because a lot of people are already doing that. So even if someone likes your system unless they perceive it as being popular already they may not use it.

</comment><comment><USER3> Marketplaces classically suffer from the chicken and egg problem. No point in distributing via marketplace if no one is buying there, no point in trying to buy there if no one is distributing (this is true even if "buying" is free).

For open-source stuff, npm is pretty much the One True Way to distribute JS libraries these days. If I'm looking for a component, I'll expect to find it by google and install it from npm.

(As far as Structor itself, I'm not at all clear on what it's supposed to do for me. The article is very long and covers too much ground. I don't see myself as likely to use a UI builder in any case, though. My current React work is all with bespoke UI controls, look of which is given to me by a designer.)

<comment><AUTHOR> You are totally right that every one used to workflow: google, npm, reading docs, trying to setup new component into project.

The goal of Structor is to give a simpler way - open project, and if you want component try to install it through the market for 10 seconds. The problem - to have big amount of such components. For this I made convenient mechanism for publishing components generator.

BTW, generator can generate only the glue code (which you writing every time after you installed npm) and has the ability to install dependencies from npm automatically.

</comment></comment><comment><USER4> Just one data point: I never heard of it or honestly thought to look for such a thing. Might just be a marketing issue?

BTW, I _have_ heard of React Storybook ([https://github.com/kadirahq/react- storybook](https://github.com/kadirahq/react-storybook)) and happened to find OverReact ([http://www.overreact.io/](http://www.overreact.io/)) which look similar at first glance. Can you give us a quick comparison?

Thanks for creating/introducing me to Structor... I'll look at it for new components. :)

<comment><AUTHOR> React Storybook is really similar thing. Although, it acts only for simple components - it seems that you can test presentational components.

Actually, Storybook is a lot simpler because Structor has convenient visual component composer. And of course, Structor uses source code generators with predefined boilerplates for Redux, Redux Saga.

Navigation between pages in Structor works with React Router. And you can export all pages with routes.

The main thing that is not liked by others is that Structor works with its own seed projects. But this is done only because Structor compile whole project.

</comment></comment><comment><USER5> I searched your Medium article for a link to an online demo for Structor and couldn't find one, perhaps that is letting you down.

Certainly looks like a promising and very comprehensive project. I'm not using React right now but I've definitely bookmarked this to come back to. Good luck!

<comment><AUTHOR> Thank you. There is only a video [https://www.youtube.com/watch?v=mAVnGa0HwGU](https://www.youtube.com/watch?v=mAVnGa0HwGU) if you don't mind.

</comment></comment><comment><USER6> I've seen you post links to Structor on HN and Reddit several times over the past few months. For whatever reason, none of the threads seem to have gotten any attention at all. Not sure why.

As for looking for React components, my go-to site is generally [https://js.coach](https://js.coach), and sometimes searching on NPM.

<comment><AUTHOR> Right, and my goal to create a global repository with React components which you can install immediately to your project.

</comment></comment><comment><USER7> I think most developers are fine just plucking the most active and "starred" repositories on github.

I tried Structor briefly and while I liked the idea in principle, my tooling and requirements are changing too quickly and I do a better job keeping my dependencies up to date. I feel that adding an extra layer of complexity between or adjacent to my application and the dependencies I'm probably already pulling from npm/github is going to be viewed by many as needless when importing components from modules is painless enough as it is.

Still, I like your project and it has a lot of potential.

</comment><comment><USER8> You are essentially building a marketplace so you'll need both suppliers and consumers. This is hard because one side relies heavily upon another. Typically, you need to boost one side first and then the other side might catch up. In other words, you need to build up either 1) the consumer side (say, if you can make this app so easily to use that people will love it despite a poor supply of UI components) or 2) the supplier side (for example, if you can somehow import 20k React components from npm or github to your marketplace)

<comment><AUTHOR> Thanks, that is exactly what I'm thinking about. I made the first part, but not many developers like it so far. That's why I will start making the next part - importing components.

<comment><USER8> That's awesome! You might also want to rethink what your market is. Is your users going to be engineers who build web app for their company, engineers who build their side projects, some developer-designers or maybe some technical product managers/product engineers? You can still catch all of them eventually, but in the beginning focusing on one or two groups might help quickly get more users and also help on morale.

<comment><AUTHOR> Yes, you are quite right. And I already decided the following. Acting as market we will be focusing on engineers who build web apps and freelancers. And as a company with own product we will provide development teams with something like component generator service (installed on internal server) for Structor - this is for enterprise customers.

</comment></comment></comment></comment><comment><USER9> I don't have a lot of interest in relying on some random component I downloaded on a whim. Not even for personal projects.

And for my own components, I can't see how it'll be faster than just implementing them in my own project, or React Storybook.

On top of that, my experience with UI builders in the past has been that they're rather hard to work with and typing out the HTML myself is not only faster, but also more flexible and more likely to end up doing what I actually want... And probably with less code.

<comment><AUTHOR> Don't you use something like a DateTimePicker or React Select component?

</comment></comment><comment><AUTHOR> It seems that "UI builder" words totally disqualify any tool which was named so.

</comment><comment><AUTHOR> Just want to add one more video about Srtuctor: [https://www.youtube.com/watch?v=z96xYa51EWI](https://www.youtube.com/watch?v=z96xYa51EWI)</comment>


Ask HN: Clean code to learn ML feature-extraction techniques - <AUTHOR> The ML community has done an amazing job disseminating information about the field, making it accessible to large numbers of people like myself who aren't professionally involved in the field.
That said, the one area that has stumped me and I haven't been able to find good clean code to learn from is Feature Extraction.  I was wondering if anyone here can point me in the direction of some clean code that a non-expert in the field could learn from.
I'm definitely aware that there are books / tutorials on the subject, but none of that has "made it click" for me yet.  To be honest I feel like most of my real "advances" have been while looking at code (after familiarizing myself at a high level with the theory and math).
For example, the tensorflow playground source code appears to be a gold mine filled with good clean code that a novice can grok.
EDIT:  If beggars can be choosers I'm most interested in seeing a practical implementation that uses a clustering algorithm (such as kmeans) to build up a set of features from image data.  Such a technique is discussed in the following video.
https://www.youtube.com/watch?v=wZfVBwOO0-k <comment><USER2> What task are you learning the features for? If it's classification, instead of treating it as a two step (feature generation followed by classification) problem, I suggest that you just use a multi-layer neural network with a sigmoid function at the final layer so that you directly predict the output class from raw pixels. This way the feature engineering is taken care of by the algorithm (the weights of the hidden layers).

To give an idea of what I mean, see: [http://karpathy.github.io/2015/10/25/selfie/](http://karpathy.github.io/2015/10/25/selfie/)

<comment><AUTHOR> Thank you for the link. I will look into this. Some of the reasons I get the idea I need to incorporate this additional step (feature detection) are:

1) I'm building this primarily for a robot, so my impression is that by building up a set of primitive features, and building up on top of them, will be more efficient for soft real-time use cases.

2) I have done what you suggest (more or less), for example as a test with the MNIST Digit Classification data. I was only getting approx. 95% success rate using this basic technique, which at first glance appears impressive until you realize what is considered "state of the art".

3) My goal is to also incorporate additional layers of data (which I'm under the impression will help improve my overall success rate), such as edge detection, corner detection, and most importantly 3d data (ie. distance from camera based on data extracted from Google Tango), so if I'm correct about #1 where this will be a more efficient calculation, incorporating all the additional data (and extracting features from that as well) will slow things down only incrementally.

<comment><USER2> 1) Once the training is done, the prediction part is simply matrix multiplications - I would think that's probably faster and far easier to parallelize than any other advance feature extraction algorithm you will be performing real time on the image.

2) Did you try using CNN?

I might be grossly wrong here, but I have gone through this path before, but I have come to the conclusion that clumsy hand-crafted feature engineering on images usually performs worse than letting the algorithm figure out. It's much harder to scale and you will end-up coming across a lot of edge cases.

<comment><AUTHOR> Thank you for the insights. I have not implemented a CNN yet, but is certainly on my radar. In fact other reading the other night pointed me in that direction so I am exploring that at the moment. With regard to scale and/or efficiency of the algorithms, I would guess if anyone is wrong here it would be me :)</comment></comment></comment></comment>


Show HN: Create beautiful mockups and graphics for your app in a few clicks - <AUTHOR> https://previewed.app/ <comment><USER2> Pricing is quite tricky. Gave a try without knowing that with free plan you can download only 3 times. Otherwise output looks great.

</comment><comment><USER3> As someone who just had to generate these for the first time ever, I was surprised and disappointed at the current products available. I'll definitely give this a try. It looks fantastic!

<comment><AUTHOR> Thanks Tyler! Do get in touch if you have specific feature requests. It's always interesting to hear our people who are very critical.

</comment></comment><comment><USER4> Congrats on the launch! This looks nice and super-helpful.

<comment><AUTHOR> Thank you for your kind comment!

</comment></comment><comment><USER5> Hey. Just FYI, it looks like the website doesn't work with JS disabled.

<comment><AUTHOR> Hi. There is just no way to manipulate images without JS, with pure html/css. Even if we wanted to. Although, I wouldn't be surprised if someone does it.

</comment></comment><comment><USER6> Any plans for desktop apps?

<comment><AUTHOR> What do you mean by desktop apps? To include desktop apps in our mockup examples? Or to create a stand-alone application for Mac/Windows? If you show us examples of what you mean, it would certainly appear on our todo list.</comment></comment>


The History of GeoWorks, Microsoft Windows' Upstart '90s Competitor (2016) - <AUTHOR> http://www.atlasobscura.com/articles/the-history-of-geoworks-microsoft-windows-upstart-90s-competitor <comment><USER2> I was blown away by Geoworks. Using a 25MHz 286 felt like a power machine. I remember printing a page with a Giant lower case e on it to see if it scaled it up to full page nicely. It printed two pages. The second just had a tiny triangle of black on it. Looking at my document I saw the end of the e had just clipped past the edge of the page.

At the time WYSIWYG was a bullet point promise that never delivered. Seeing it actually happen was amazing. That it was in a product that had the feel of "Of course it does it that way, because that's how it should be done"

I often lament that it was never an Open Source project. It got passed around companies looking to use it in some niche or other while it slowly decayed. It had enough enthusiasts that as an open project it would have developed.

<comment><USER3> Acorn delivered proper WYSIWYG that actually worked on RiscOS around the same time. Everyone else was still playing with WordPerfect. TechWriter depicted below and impression were ridiculously powerful:

[http://www.mw-software.com/icon- tech/Products/TechWriter/Tec...](http://www.mw-software.com/icon- tech/Products/TechWriter/TechWriter%20pro.html)

So while your peers were just about getting a 386 with DOS/windows 3, you had a 32-bit ARM workstation with full anti aliased font rendering and production grade print capability.

Shame the kernel was poo and the file system so disparate to everything else or it may have taken off.

<comment><USER4> Amiga users could enjoy the likes of PageStream and Papyrus Office, also about the same time.

</comment></comment></comment><comment><USER5> I (briefly) had to write code to run on GeoWorks GEOS. The code was written in a dialect of C with object oriented features that was compiled from .goc and .goh files to .c files in a manner similar to cfront. It was not a pleasant experience.

Edit: This was in 1997. We were writing a web browser for the Brother Geobook which was a device with late 90s PDA capabilities in the form factor of a late 90s laptop. I don't think that it was a particularly successful product.

<comment><USER6> In Cambridge, later moving to Bury StEdmunds?

(If you don't know what I'm talking about, I thought you were someone I briefly used to work with. Sorry.)

<comment><USER5> I joined STNC in October 97, so moved in the opposite direction, starting in Bury St Edmunds and moving to Cambridge after the acquisition!

<comment><USER6> Ah, you would have joined shortly after I left, so you may have been my replacement. Did they give you the email sending/receiving components too?

<comment><USER5> Fortunately not, I mostly finished the colour port. And then Brother cancelled the contract (or at least didn't choose us for the colour device).

I still see Ran from time to time (we're both at Amazon)

</comment></comment></comment></comment></comment><comment><USER7> Steve Yegge had an interesting take on what it was like to work at GeoWorks:

> OK: I went to the University of Washington and [then] I got hired by this > company called Geoworks, doing assembly-language programming, and I did it > for five years. To us, the Geoworkers, we wrote a whole operating system, > the libraries, drivers, apps, you know: a desktop operating system in > assembly. 8086 assembly! It wasn't even good assembly! We had four > registers! [Plus the] si [register] if you counted, you know, if you counted > 386, right? It was horrible.

> I mean, actually we kind of liked it. It was Object-Oriented Assembly. It's > amazing what you can talk yourself into liking, which is the real irony of > all this. And to us, C++ was the ultimate in Roman decadence. I mean, it was > equivalent to going and vomiting so you could eat more. They had IF! We had > jump CX zero! Right? They had "Objects". Well we did too, but I mean they > had syntax for it, right? I mean it was all just such weeniness. And we knew > that we could outperform any compiler out there because at the time, we > could!

> So what happened? Well, they went bankrupt. Why? Now I'm probably > disagreeing – I know for a fact that I'm disagreeing with every Geoworker > out there. I'm the only one that holds this belief. But it's because we > wrote fifteen million lines of 8086 assembly language. We had really good > tools, world class tools: trust me, you need 'em. But at some point, man...

> The problem is, picture an ant walking across your garage floor, trying to > make a straight line of it. It ain't gonna make a straight line. And you > know this because you have perspective. You can see the ant walking around, > going hee hee hee, look at him locally optimize for that rock, and now he's > going off this way, right?

> This is what we were, when we were writing this giant assembly-language > system. Because what happened was, Microsoft eventually released a platform > for mobile devices that was much faster than ours. OK? And I started going > in with my debugger, going, what? What is up with this? This rendering is > just really slow, it's like sluggish, you know. And I went in and found out > that some title bar was getting rendered 140 times every time you refreshed > the screen. It wasn't just the title bar. Everything was getting called > multiple times.

> Because we couldn't see how the system worked anymore!

[http://steve-yegge.blogspot.com/2008/05/dynamic-languages- st...](http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike- back.html)

<comment><USER8> I was all ready to complain about this quote. Specifically, it seems somewhat silly. MS didn't win by having a better operating system. They "won" by having products people were buying. A revenue stream is a valuable thing.

That said, I encourage everyone to fully read the section that is pulled from. The whole article, actually. Very nice talk and I think it contains some very insightful points. In particular, the idea to keep the system small and the rest will fall out of that.

</comment></comment><comment><USER9> I loved Geoworks. It did things on my 386 that Windows 3.1 had no hope of doing ever (like loading and working). Also, the banner program wasn't just useful with dot-matrix printers. I had an inkjet and remember many birthdays printing out banners for my family (we used Scotch tape to put them together). Good times.

<comment><USER10> Why didn't people load continuous feed paper into inkjets? It seems like it would have worked. I never tried it either.

<comment><USER11> Inkjets printed pages have to dry or the ink will smudge, so printers (at least those of that era) have a mechanism that holds the page for a few seconds before dropping it on the stack of completed pages.

<comment><USER10> Seems like having the banner pour over the edge of a table would give it enough time to dry, too.

<comment><USER11> There's a million ways you could make it work but the default way will lead to a big mess so the printers don't allow you to use continuous paper feed. It's kind of a niche feature anyway.

</comment></comment></comment></comment></comment><comment><USER12> Back in those days, Windows had an absolute lock on the industry for several reasons:

1: it was the incumbent

2: there were no hardware drivers for any other operating system

3: there was software for Microsoft operating systems, and no useful software for any other OS

4: Microsoft has legal contracts with the hardware manufacturers which required that a icense fee be paid regardless of whether or not Windows shipped with each machine.

5: probably more reasons

As an outcome of the above it turned out to be impossible for any other OS to get a foothold on the PC. It's hgard for people to understand now, but there was still an opening for some other OS to get a foothold.

In the end, another OS turned up and started making major headway on the PC. It succeeded against Windows in the way that such battles tend to be played out - by playing to a different set of rules. That OS of course was Linux and its rules were to be free, to have a collaborative development model, to be server focused, and to have the fortunate timing of being at the start of the era of connected computing. I remember being startled that I could get a free operating system by buying an issue of a computer magazine at the newsagent with a CDROM on the front containing Linux.

Eventually the seemingly impossible happened and an OS came along that beat Microsoft on the desktop, or at least competed effectively with Microsoft Windows - and that of course was OSX. And OSX against succeeded by playing to its own rules. No need for hardware drivers for every device under the sun because they it only ran on Apple hardware. It had applications from the Macintosh user base (and Microsoft), and turned out to be a really nicely integrated and functional OS (IMO).

Its a pity GEOS didn't make headway, at the time I really wanted SOMETHING, ANYTHING to give Microsoft effective competition because it looked back then like it was going to be 1,000 years of Microsoft in first place with no second, third or fourth place runners up.

BeOS also gets points for having a try at competing with Microsoft.

<comment><USER13> Back in those days, mostly nobody cared about driver support. In Windows 3.1, there were three classes of things that you could even install driver for: graphics cards (if you wanted more than 640x480, which most people didn't care about), printers (windows had ~70 different drivers, on the other hand most printers were compatible with some defacto standard) and other devices which effectively were sound cards.

Both windows and geos mostly relied on DOS and BIOS for things like filesystem and block device access, so for scsi disks, zip drives and similar you either needed DOS driver or just correct BIOS ROM module on the card.

This only changed with Windows 95, which still could use DOS drivers, but reliability and performance suffered in that case. Native 32bit windows drivers were built on top of Plug and Play model, which has the unfortunate feature that given device is either recognized by windows automatically or needs specific driver for that specific device (surprising amount of these "drivers" are plain text files that just map the device id onto some standard windows driver).

<comment><USER14> While I agree with you, saying that nobody cared for driver support because it was provided by DOS leaves out some people: other OS vendors :)

Microsoft sidestepped the issue at first by building Windows on top of DOS but even they had to tackle it head on for Windows 95, as you say. Everyone else, though, was basically doomed to be locked out of the market because of this issue.

<comment><USER15> I'm still struggling to think of what drivers would actually count here, depending on what time period we're talking about. Early 80s? Late 80s (Win3)?. INT 21h file services?

It was the era when DOS games didn't use "video drivers", they all wrote directly to the VGA registers. Similarly for sound cards: you could buy a Soundblaster or (if you were rich enough) a Gravis Ultrasound, and other manufacturers cloned the hardware API directly. Games later tended to come with "DOS4GW", which was effectively a 32-bit operating system that could load from and return to DOS.

</comment></comment></comment></comment><comment><USER16> GeoWorks was pretty cool on the 386 but GEOS on the Commodore 64 was just unreal -- it was slow and required some tedious disk swapping but even the idea of selectable, proportional fonts at different font sizes among its many other features was amazing on a 1MHz CPU, 64k RAM system.

<comment><USER17> I also had GEOS on a C64, but I remember it being a cartridge---so no disk swapping required.

I picked mine up at a garage sale, too.

As an aside: I just learned/remembered that the original Nintendo Game Boy ran at roughly four times the CPU frequency of the C64.

<comment><USER18> The Game Boy has a Z80-like processor, though. Generally, Z80 instructions take more clock cycles to execute than 6502 instructions, so the clock speeds are not directly comparable.

<comment><USER17> Yes. The C64 also had more RAM.

</comment></comment></comment></comment><comment><USER19> I remember running geoworks on an 8086 with 1MB of ram. ran reasonably well and came with the proto AOL (for some reason I thought it came with a Quantum Link client that looked like an AOL client, but according to wikipedia Quantum Link was already renamed to AOL at this time).

It was a pretty amazing piece of code that made that 8086 very usable for a few more years.

<comment><USER20> Out of curiosity, what kind of a machine was that? I didn't think you could get that much ram in an 8086 ...

<comment><USER19> It was a panasonic of some sort. Don't remember the details that clearly. Remember the turbo button, and I remember being upset that Wolfenstein 3D required a 286 and wouldn't run on it. I'm also positive it came with more than 640k of ram, as would go through the tricks to load things in the upper portion to have more "normal" ram for games and the like.

<comment><USER21> I'm surprised that it came with a turbo button; those were a hack to downclock the bus to a lower speed to get old software that had assumed a specific clock speed to work correctly. Would be unusual on an 8086.

<comment><USER22> lots of 8088/8086 "turbo xt"s had their CPU run at 8-10mhz vs 4.77mhz for the original IBM PC & XT.

<comment><USER23> Yup, I had an 8Mhz Hyundai XT clone with the same "feature".

</comment></comment></comment></comment></comment></comment><comment><USER24> I used GEOS often on my C64 as a child. It was my first experience with a graphical desktop interface and seamlessly segued into the Amiga, for me.

I recall the paint program, with its textured fills, and all the simple bitmap tools everyone is familiar with today in MS Paint. The word processing app, really more like desktop publishing. The general file management and window system...

It seems all rather forward thinking for 1986. It seems like the concepts for most of our software tends to be around for long before we have the technology to do it properly. All the pre-internet machines I had later just did what my Commodore 64 and GEOS did, but faster and with more colors.

</comment><comment><USER25> When I was an undergrad in the CS dept at U.C. Berkeley (88-92), Geoworks is where >everyone< wanted to work.

</comment><comment><USER26> I used GeoWorks for serious work in 1994, because the place I was working was too stingy to spring for a Windows 3.1 licence. Fabulously easy to use, and crashed at the drop of a hat losing all unsaved work ... frickin' Win3.1 _WordPad_ would have been superior, certainly in stability at least ...

<comment><USER27> In Win 3.1 it was still called Write. If I am not mistaken mswrite.exe will launch WordPad to this date (and pbrush.exe MS Paint)

<comment><USER26> That's the one!

</comment></comment></comment><comment><USER28> By the early 90s pc clones were much cheaper than $2K and I'd reckon OS/2 was a much bigger competitor to Windows than GEOS.

<comment><USER29> On the other hand, in the same era (~1993) you could have had what was effectively Mac OS X (NEXTSTEP) which ran on x86 clones at that time (though with a fairly narrow set of supported hardware). Absolutely blew away anything offered by Microsoft, Apple, or IBM at that time.

<comment><USER30> You could also have had an Amiga which AIUI blew away NeXTSTEP as far as price/performance?

Not really speaking from a position of expertise on the matter, since I've only ever _seen_ (and never used) a Video Toaster and the only NeXT machine I've ever used is the one in the computer museum in Google's NYC office.

<comment><USER22> amiga was no longer particularly cutting edge by the time VGA and 386s became common in the 90s, its advantage was astonishing mostly during the 80s and very early 90s (8088-286 era).

</comment></comment></comment></comment><comment><USER31> > That computer wasn't super-fast—what, with its 40-megabyte hard drive and > one megabyte of RAM—and, as a result, it really benefited from the > lightweight, object-oriented approach of GeoWorks.

…am I the only one that made a double-take at this? I don't associate OOP with being lightweight. It's either oxymoronic or irrelevant.

<comment><USER32> Much of the OS was written in an object-oriented assembly language!

This is also what doomed GeoWorks; much of OS was written so low-level is was impossible to port PC/GEOS from 8086 to newer processors.

</comment></comment><comment><USER30> I remember reading about (or at least seeing cool looking ads) for GeoWorks, DESQview (and DESQview/X!), and GEM in magazines like Byte in the early 90s. I was always sad that I never got to try out any of them on my machine.

<comment><USER19> I used them all. They all lost to windows because of "Developers Developers Developers". i.e. no one really wrote apps for them (besides AOL for Geoworks).

Desqview was neat it allowed you to multitask dos apps, but dos 5 basically included same functionality in a more restricted forms (basically how MSFT did to all of Quarterdeck's stuff). Desqview/X was nice if you were in an unix environment, but vast majority of users were not. GEM was along the same lines as geoworks, but recall it being less usefull.

<comment><USER33> I seem to remember the main reason people ran GEM was because it was bundled with Ventura DTP software.

</comment></comment></comment><comment><USER34> I loved GEOS too, used it on my C64. It was probably black magic that they got it to run so well on there.

</comment><comment><USER35> Used to swear by my HP OmniGo 100.

<comment><USER36> As a side note the New Deal Office:

[http://toastytech.com/guis/nd32.html](http://toastytech.com/guis/nd32.html)

and the Breadbox Ensemble which was built from the ashes of GeoWorks:

[http://toastytech.com/guis/bbe.html](http://toastytech.com/guis/bbe.html)

were not at all bad, and for low powered older machines were actually a godsend.</comment></comment>


Ask HN: What was the "Lightbulb" moment for your career? - <AUTHOR> A few days ago a question was posted about side projects and how long it took for them to make money (and then the question of how much). It got me thinking, what was the "lightbulb" moment where suddenly you realized what you wanted to focus your career on, or the epiphany that completely changed how you work? <comment><USER2> When I realised that the acquisition of wealth is not a lottery, it's a non- linear progression

</comment><comment><USER3> I think Lean Startup & Customer Development transformed the way I looked at everything I did as a software engineer. It reignited my inner-entrepreneur as well. Now I'm a data scientist and I work in Finance and I help get others in my company to have that same epiphany.

<comment><USER4> Is that a book?

</comment></comment><comment><USER5> When I learned what "epiphany" meant.</comment>


How many times have you won a hackathon? (As in top prize) - <AUTHOR>

<comment><USER2> Once.

On fall 2011, my college friends and me entered a local hackathon to create a mobile app for Mexico city. At that time we were still students and the event was held on weekdays so the first team that we thought was modified several times due to this. In the end 3 of four members of the original team showed up plus one friend we invited out of panic.

We didn't have enough confidence because most of the participants were experienced IT professionals who entered for leisure or mobile development companies seeking for talent or attention and we were just students who had less than a year working on Android. From our point of view we were under- qualified and we feared to public ridicule.

It was a 2 day hackathon of non-stop work where the result was a totally functional app for routing using public transportation. Everyone was shocked for the amount of work we achieve in 48 hours, mainly because most of the teams had just unfinished prototypes and we had a ready to distribute app.

The next year we participated again, this time the whole team, but it wasn't the same, we had a plain participation. I couldn't help but feeling disappointed and thoughtful of what went wrong. It might be overconfidence or that we were lucky one year before. I am willing to try again sometime in the near future.

The important is that thanks to that one time we won, we got to know to a lot of talented people, got to own a top app, and got the chance to work in a national cool IT company and we helped to fund one of the companies of the first batch of 500startup MX (but that's another story). All of this before our graduation!

<comment><AUTHOR> Thanks for the response ivancho. I am really keen to hear developers' experience with hackathons. I'm gathering exactly this sort of story you just shared. It appears that the resulting theme with hackathons is that you meet really talented people, and get a shot at partnering with bigger companies. Would you mind sharing what you guys did?

<comment><USER2> Sure. The product we developed in hackathon is MetroDF for Android ([https://play.google.com/store/apps/details?id=com.crayonlion...](https://play.google.com/store/apps/details?id=com.crayonlion.metro)) then for iOS (<https://itunes.apple.com/mx/app/metro-df/id528831959?mt=8>). This year we got to participate in Yaxi [yaxi.mx] Android ([https://play.google.com/store/apps/details?id=com.zebstudios...](https://play.google.com/store/apps/details?id=com.zebstudios.yaxi)) and iOS (<https://itunes.apple.com/mx/app/yaxi/id551201698?mt=8>) and backend. In the meantime we got to work in many apps for third parties where we polished skills a little.

This year we graduate so we hope to re-release MetroDF and work in our own projecs.</comment></comment></comment>


Without Cloud, iPad Pro is an executive's desk paperweight - <AUTHOR> http://www.zdnet.com/article/without-cloud-ipad-pro-is-an-executives-desk-paperweight/ <comment><USER2> > The success (or lack thereof) of this device is going to hinge upon whether > or not an elite group of high-level business executives at large > corporations are going to want to use one of these as their primary device > instead of a Mac or Windows laptop or even a regular iPad, like they may use > today.

This article seems to miss the point. It's not "Pro" in an enterprise sense, it's "Pro" in a creative professional sense. Like the Mac Pro, Final Cut Pro, Macbook Pro, or pretty much anywhere else Apple has adopted the "Pro" moniker.

Apple demoed the interesting use cases. None of them required the Cloud.

Painting and drawing: Procreate is already an excellent painting app for iOS. It beats Photoshop in speed and fluidity on much slower hardware. A first party pressure-sensitive stylus, large screen, and increased RAM will make it competitive with Cintiq.

Writing and coding: there are tons of great code editors, coding environments, SSH tools, and document editors for iOS. I imagine professionals like Federico Viticci, who uses Editorial for iOS to manage his website, would be interested in the iPad Pro.

Music making: it seemed obvious why Garageband was featured prominently in iPad Pro marketing materials. It also doesn't require the cloud.</comment>


Useful Analytics Strategy for Early-Stage Startups - <AUTHOR> http://data.heapanalytics.com/the-single-most-useful-analytics-strategy-for-early-stage-startups/

<comment><USER2> This idea reminds me greatly of something I learned back around 2003 while demoing our HL2 mod, Dystopia, to the guys at Valve.

During our closed beta testing we'd always dump a heap of "how to play the game" style info onto people who we brought in to help us with testing. I had all this info and a whole elevator pitch ready to give the Valve crew when they sat down to play our game.

They stopped me from giving any info, tips or advice. The way they test games is to watch people play them with out any prep. Just shut your mouth, stand behind them and write down anything that they have trouble with or generally fumble around with. Any part of the game which they couldn't intuitively grasp needed to be reworked.

It was definitely one of the most difficult things I've ever had to do. It was truly painful to watch people, my heroes no less, completely fail to work out wtf they were meant to be doing and not explain it.

However it was by far the most productive test session in the 3 years we'd been working on the game. It completely showed our "baby" in a different light and we instantly knew we had a heap of work to do.

</comment><comment><USER3> Does anyone have experience using Piwik (or another free analytics suite) for individual user analysis?

I run a fairly simple site with a few "interactive parts" and some calls to action, and it would be amazing to see individual tracks of what each visitor did. Do they read the PR text? Do they click on any of the interactives? Etc.

I'm using GA events now, and it gives me a rough idea of what is going on, but not the _sequence_ of events, like what happened before they decided to click on the call to action.

Amy recommendation for tools that can make this happen?

<comment><AUTHOR> Heap's list view was built for this exact use case: [https://heapanalytics.com/features/users](https://heapanalytics.com/features/users). We use it all the time for developing a better intuition for our product.

(I'm a founder of Heap.)

<comment><USER3> OMG, I just started using Heap and it's exactly what I was looking for. Where have you been all my life?

Thank you so much for posting your comment.</comment></comment></comment>


Ask HN: Twitter account stolen by presumed vulnerability - <AUTHOR> Hi HN,
My Twitter account was recently hijacked using what I believe is either a vulnerability or exploit within Twitter. My username was one that I consider to be somewhat sought after (I had offers to sell it).
I am not able to contact anyone at Twitter support. The Twitter support platform is just automated steps that do not help in any way.
My followers, tweets, and most importantly the connections I've made are gone. Simply vanished. My e-mail address is no longer associated with a Twitter account. Ifound a user on HN who had a similar issue [0] but my mobile device wasn't hacked.
Here's what I know:
I received an e-mail from Twitter stating that my e-mail address was changed. Prior to this I did not receive anything else from Twitter - no login notice, no two-factor authentication code, etc…
My Twitter password is/was 64 characters and is stored in KeePass. I had two-factor auth enabled on my account which was linked to my mobile. I retain sole access to all of my devices and that e-mail address. As far as I know, nothing that I own has has been compromised.
Whoever has control of my Twitter account joined Twitter in May of 2019. I suspect they may have bypassed the existing username restriction during registration.
I've opened multiple support requests with Twitter. All of those have been closed. I submitted a bug bounty report on Twitter's HackerOne page [1] but it was promptly closed citing no access to individual accounts.
I reached out to some current and former employees on via Twitter and only had one response from a former employee. I also reached out to a few Twitter employees via e-mail to no avail.
I'm hoping that someone here might be able to at least offer me some advice. I doubt I'll ever see my account again but figured this was worth a shot. Thank you for your time.
Scott
[0] - https://medium.com/@simon/mobile-twitter-hacked-please-help-2f65c691edf8 [1] - https://hackerone.com/twitter <comment><USER2> Did you have a phone number associated with your Twitter account? If so call your mobile provider and ask if any changes have been made recently, especially by store employees. If you have two factor set up they most likely removed it and reset your email address using phone verification and intercepted the text message.

For everyone else... go check your Google, Github, etc. accounts and make sure you _do not_ have a phone number listed.

<comment><AUTHOR> Yes I did. I will call my mobile provider to see if any changes were recently made.

I originally didn't suspect a SIM swap attack as I received a text message from one of my contacts around the time the e-mail address was changed. I was out of town of course and did not have my data on. I saw the Twitter e-mail notification the following day. Checking with my mobile provider will be a safe bet for sure.

Thank you for the info.

<comment><AUTHOR> I thought about this a bit further. Wouldn't the join date of May 2019 on the account [0] signify that the user may not have actually reset my password/e-mail address but rather created a new account?

Ether way, I am still going to contact my mobile provider to be sure.

[0] - [https://twitter.com/scott](https://twitter.com/scott)

<comment><USER3> Maybe the attacker simply changed your username after gaining access, paving way for them to register a new account in that name.

<comment><AUTHOR> That's a good thought but I don't think that's the case unfortunately. My e-mail address is not associated with any Twitter account at this time.

Twitter states they cannot find an account with my e-mail address if I try a password reset. As far as I can tell, my previous account has vanished as I mentioned in my OP.

<comment><USER3> After changing the username, couldn't they change the email address too?

</comment></comment></comment></comment></comment></comment><comment><USER4> I've had my twitter account for 10 years [https://twitter.com/mkrn](https://twitter.com/mkrn) and then one day I decided to follow a few people from an article I've read all at once. Then twitter blocked by account and removed all my followers. Have no ability to DM them either. I filed complaints but no response

<comment><AUTHOR> I'm sorry to hear about your experience. I hope that you are someday able to get your account back. If that is truly the reason your account was suspended, that just isn't right.

If I make any headway with my case and I am able to forward you contact info I will happily do so.

</comment></comment><comment><USER5> Twitter doesn't care. This time it seems you were hacked, but Twitter themselves routinely decide to give your handle to someone else.

<comment><USER6> Yeah. If this happened to me, I would just completely withdraw from Twitter. Byeeee. :) I actually prefer rss for news and irc for chat.

</comment></comment><comment><USER7> [https://twitter.com/scott](https://twitter.com/scott) \- joined May 2019, RIP

<comment><USER8> Ouch, that's crazy. Hoping to hear what happened in this situation...

</comment></comment><comment><USER9> I enjoyed using Twitter for 9 years with my firstnamelastname account. Then I lost access to the email address and there is no support to help me regain access. I'd even pay them something to verify my identity and account.

Oh well i havent used Twitter in years and wont unless I gain access back to my account.

<comment><AUTHOR> I understand your frustration. I offered to provide my ID to Twitter for verification if it would help. I never heard anything from them in regards to that.

For me, somebody actually tried to extort me with my firstnamelastname account on Twitter. To this day they have it registered still with no tweets.

</comment></comment><comment><USER10> These big tech companies are unaccountable to anyone except shareholders (and even then, not always). Your only hope is having a friend in the company, which is a ridiculous way of solving problems.

Given a bad situation, the best solution is to just stop using Twitter. A week without it and you won't miss it.

<comment><AUTHOR> I fear you are correct regarding the accountability unfortunately.

For me, I wasn't active on Twitter as far as tweeting [0] but I was actively reading what my connections were posting.

I've already come to the conclusion that if I don't get my account back I will not be using Twitter for personal use.

[0] - [https://web.archive.org/web/20190428220642/https://twitter.c...](https://web.archive.org/web/20190428220642/https://twitter.com/Scott).

</comment></comment><comment><USER11> I have a similar problem and am totally frustrated by the lack of human support at Twitter. It's really pretty ridiculous.

</comment><comment><USER12> I assume that Twitter's security team isn't dumb. But, I wish companies would stop even allowing users to use phone numbers to validate identities -- it's actively less secure than using an email address, and literally everyone on the platform has an email address. There is zero reason for Twitter/Paypal/etc to ever use a phone number to contact me -- email will _always_ be more secure.

Privacy concerns aside, this is one of the primary reasons why I try not to give my phone number to websites I sign up for. I can't trust them not to treat it like an authentication mechanism. OP didn't want to use his phone number as authentication. This was a setting somewhere that got enabled by default, even though for the most part, nobody should _ever_ have it enabled.

Why does this setting exist?

It really feels like a juvenile security mistake to me, and I don't understand the reasoning behind Twitter's security team being OK with it. To me, this seems like a mistake on the same level as using security questions or mandating password expiration. Maybe there's some justification I'm missing, but right now it's difficult for me to imagine what it would be.

<comment><USER13> > literally everyone on the platform has an email address.

This may be true in nations that have had ubiquitous internet access, but in many quickly-growing markets this is not true.

<comment><USER12> I was referring specifically to Twitter -- it's been a while since I checked, but doesn't Twitter require an email address for every account on signup?

If you're offering a service that doesn't rely on email, I do see a gray area there for using SMS as a fallback; but most services I use don't fall into that category. I've even seen banks go down this direction -- banks that both require me to have an email to make an online account, and that are only operating within the US.

Lyft in particular weirds me out, because (third-party services excluded) Lyft only works via an app and a web interface. And yet there's no option to sign into the Lyft website using anything other than SMS. I'm required to use an insecure SMS login even though I literally can't request a Lyft ride without an Internet connected device.

I understand having options for developing nations, I don't understand using those options as a default, or even going so far as requiring users to leave them open.

<comment><USER13> > I was referring specifically to Twitter -- it's been a while since I > checked, but doesn't Twitter require an email address for every account on > signup?

I see, I misunderstood. it does not require an email address on signup, they've been pushing more and more aggressively to force new accounts to have numbers tied to them in fact[1]. [https://mobile.twitter.com/i/flow/signup](https://mobile.twitter.com/i/flow/signup) in a private browser tab in fact defaults to phone number and the email flow is deprioritised.

I agree that it should never be required, much less the only factor. Nothing good can come of it but these companies get to lean on Trust and Safety as an excuse to collate this information for nonconsensual purposes.

[1] [https://www.reddit.com/r/privacy/comments/8e5m73/twitter_is_...](https://www.reddit.com/r/privacy/comments/8e5m73/twitter_is_forcing_me_to_add_my_phone_number_how/) and some other stuff that I'm too tired to search hn for

<comment><USER12> Oof. That's disappointing to hear, but I appreciate the heads up.

My more cynical side agrees with you that the shift is probably mostly explained by data collection and user monitoring. I would like to give Twitter's security team the benefit of the doubt, or say that they're expanding into different markets and it's an accessibility thing, but... I dunno. I'm not sure I actually believe that.

</comment></comment></comment></comment></comment><comment><USER14> I had a similar story on Twitter. I had been using Twitter for a few years. One day I noticed a user with a handle trying to impersonate someone else (handle was close to another handle, with i/l switched). That handle was posting links to a crypto "giveaway" that really was a credential fishing website. I reported those tweets, and posted replies to those tweets to warn people. A few days later Twitter sent me an email that I had been violating the terms and conditions (without any more precise explaination), and had disabled my account. I still don't know whether it was the scammy handle that somehow managed to get me blocked or whether it was a Twitter algorithm that had incorrectly classified my account. Anyway, the Twitter email contained a link to a procedure to appeal the decision. I appealed the decision, but received another Twitter email a few days later that the decision was final because I had violated the T&C (it was again missing any further explanation). That was the end of the story, and since then I just stopped using Twitter.

<comment><AUTHOR> I'm sorry to hear of your experience with Twitter. I really wish they would give you a precise explanation. Many large companies have humans replying to support requests on a regular basis. It would be nice if Twitter would do the same to provide some context. I don't blame you for quitting Twitter after that.

</comment></comment><comment><USER15> Your mobile phone number might have been cloned [1] to impersonate you in two- factor authentication, password reset or other means of accessing your e-mail or twitter account.

This is a serious concern of mine and I'd love for a security expert to chime in and answer how can I prevent this from happening to me other than being insignificant enough that I'm not a worthy target?

[1] [https://en.wikipedia.org/wiki/Phone_cloning](https://en.wikipedia.org/wiki/Phone_cloning)

<comment><USER16> The common advice is to have a second phone number that isn't public if you have to use SMS as a 2nd factor. Like a Google voice number (assuming that's still around) or other virtual account.

</comment></comment><comment><AUTHOR> I just wanted to provide an update regarding my mobile carrier. I gave them a call today and there were no recent changes on my account. I'm still thinking this was an exploit or vulnerability on Twitter's end. I will continue to try to reach out to Twitter employees.

</comment><comment><USER17> Sounds like SIM Swapping. Listen to this podcast to learn more: [https://gimletmedia.com/shows/reply- all/v4he6k](https://gimletmedia.com/shows/reply-all/v4he6k)

</comment><comment><USER18> Sounds incredibly strange... I hope you can get a answer from a human.

</comment><comment><USER19> SMS 2fa is not secure and I believe sim swapping is on the rise. Check with your mobile provider.

</comment><comment><USER20> It looks like you got your account back? How did that happen?

<comment><AUTHOR> I'm still working to figure that part out honestly. As you can see, it looks like my account has only been partially restored at this time.

At this time, I still do not have login access to the account and I don't know who "john" is (the public name on the account). I have not been contacted directly by anyone at Twitter support.

If I receive more information I will post it here if I am able to.

</comment></comment><comment><USER21> You get what you pay for.</comment>


Ask HN: How do I make the most money as a programmer - <AUTHOR> I was wondering what the path is to maximize my income to the effort put in. Is it actually the salary route at a large company? Start ups seem to be the worst route due to low success rate and high effort. Also looks as if consulting tops out at 150K/yr average without being an expert in a field. I wonder what being en expert entails.
Would changing fields be the best route? I wonder if its to late for me to get into investment banking.
Currently making 140K at 7 yrs experience fullstack dev in the midwest. <comment><USER2> Make shitty mobile apps and charge kids $99.99 for some gems. While blasting a constant stream of ads at them.</comment>


Following a Select Statement Through Postgres Internals (2014) - <AUTHOR> http://patshaughnessy.net/2014/10/13/following-a-select-statement-through-postgres-internals <comment><USER2> This article was also discussed before: [https://news.ycombinator.com/item?id=8449329](https://news.ycombinator.com/item?id=8449329)

Pat Shaughnessy has 3 other similar articles about Postgres internals. He does a great job of combining high level explanations, visual aids, and gritty details.

Discovering the Computer Science Behind Postgres Indexes [http://patshaughnessy.net/2014/11/11/discovering-the- compute...](http://patshaughnessy.net/2014/11/11/discovering-the-computer- science-behind-postgres-indexes)

A Look at How Postgres Executes a Tiny Join [http://patshaughnessy.net/2015/11/24/a-look-at-how- postgres-...](http://patshaughnessy.net/2015/11/24/a-look-at-how-postgres- executes-a-tiny-join)

Is Your Postgres Query Starved for Memory? [http://patshaughnessy.net/2016/1/22/is-your-postgres- query-s...](http://patshaughnessy.net/2016/1/22/is-your-postgres-query- starved-for-memory)

<comment><USER3> Thanks everyone for the kind comments, and for taking the time to read this stuff :)

<comment><USER4> I'm not going to read all of that right now. Buy you've earned yourself a subscriber.

</comment></comment></comment><comment><USER5> "What's going on here? Why is Postgres wasting its time, continuing to search even though it's already found the data we're looking for?"

Because Postgres has not already found what we are looking for. The query is

      select *
      from users
      where name = 'Capitain Nemo'
      order by id asc
      limit 1;

Only after Postgres has found all users with the name 'Capitain Nemo' it can sort them by their 'id' attribute and limit the result set to the first one in the sorted relation.

Otherwise very nice post though.

<comment><USER6> Yes, the OP here [0] says that the query was one that was generated from ruby's ActiveRecord. Clearly, removing the sort clause would speed up this query. I believe the issue (from the ruby perspective) is using ActiveRecord's `User.where(name: 'Captain Nemo').first` instead of `User.where(name: 'Captain Nemo').take` [1]

[0] [https://news.ycombinator.com/item?id=8449329](https://news.ycombinator.com/item?id=8449329) [1] [http://api.rubyonrails.org/classes/ActiveRecord/FinderMethod...](http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method- i-take)

</comment></comment><comment><USER7> One thing I've gotten pretty good at is taking some question I have about some software and answering it by looking through the source. I've wondered whether people would find it interesting if I showed the process of how I do this.

I've wondered whether YouTube might be a good medium for this. Blog articles feel kind of "produced" \-- I thought it might be cool to capture the exploratory nature of how this works.

<comment><USER8> I'm the same way: take a question and answer with the source. But as my time gets more and more constrained, I wish more large open-source projects had design docs akin to CockroachDB. I read through the CDB design doc in one sitting, then read the source and it was such a treat to have that high-level context while wading through the details.

I can't say the same thing for ElasticSearch (or most large open-source projects). It's very difficult to get the high-level context without a well- written design doc explaining why things are the way they are. Some parts of ElasticSearch make sense, and other parts just seem hackneyed. Of course, I could pull together little bits and pieces of high-level insight from multiple disparate blog posts and forums and mailing lists here and there.

But what I would like is a design doc! If you were to produce something along the lines of that for open-source projects that need it, I wouldn't hesitate to pay a modest fee.

<comment><USER9>
      > If you were to produce something along the lines of that
      > for open-source projects that need it, I wouldn't hesitate
      > to pay a modest fee.

Try BountySource [1] maybe?

There you can post a proposal for some improvement to an OSS project (a design doc, in your case) and pledge a bounty for it.

If other people have the same problem, they might chip in further, making it more visible/profitable to solve.

\----

[1] [https://www.bountysource.com/](https://www.bountysource.com/)

<comment><USER8> Thanks for the link! First time I've seen that marketplace. I'll look into it.

</comment></comment></comment></comment><comment><USER10> I've been looking for books or articles on Database Architecture and internals for a while now.

I found this paper "Architecture of a Database System" [1] to be an excellent starting point, it's written by database veterans James Hamilton and Micheal Stonebraker and references other much deeper works.

I've always liked Pat Shaughnessy's work, Ruby under a Microscope was a fantastic introduction to MRI 2.0. I really hope to see more works like these.

[1] [http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf)

<comment><USER11> That paper is excellent and serves as a great intro for a graduate database course. It would be remiss not to list the main author though (Joe Hellerstein, Berkeley).

</comment></comment><comment><USER12> > Next Postgres analyzes and rewrites our query, optimizing and simplifying it > using a series of complex algorithms.

Analyze & rewrite doesn't really use any complex algorithms.

Analyzing basically means that we resolve tables/objects/operators/databases/... in the parse-tree into what they mean in the current database with the current settings. The process of parsing itself (via a bison parser) doesn't do any object lookups and such. So errors about non-existant tables, operators and such will mostly happen during the analyze phase.

The rewrite phase, which often will do nothing, will resolve both explicitly (CREATE VIEW) and implicitly (row-level security) referenced views by their definition. It also processes rules in an equivalent manner, but you should never use those...

The actual optimization you're referring to will happen as part of planning.

EDIT: typos

<comment><USER11> Rewrite phase is also supposed to "flatten subqueries/views" (cf. "Extensible/rule based query rewrite optimization in Starburst"; SIGMOD 92) and can be fairly complex. PostgreSQL doesn't do it to the same extent as DB2, but there is certainly some complex logic involved there.

<comment><USER12> That paper's definition of rewriting isn't the same as postgres' (they even say that: "The work presented here should not be confused with the query rewrite facility of POSTGRES [SJGP90]."). Flattening subqueries and views happens during planning in postgres.

Source: I'm a PostgreSQL Developer.

</comment></comment></comment><comment><USER13> Interesting stuff, I've recently got interested in databases and did some toy programming related to them, trying to understand how they work.

I just wish the author had gone closer to the nitty gritty details of _how_ the data is actually fetched from the disk. How does Postgres store the data? What do the data files look like, how is the parsing done?

In any case I appreciate the effort. I guess I might have to dive into the source code myself.

<comment><USER12> There's some docs about this in the docs. c.f. [http://www.postgresql.org/docs/devel/interactive/storage.htm...](http://www.postgresql.org/docs/devel/interactive/storage.html)

</comment></comment><comment><USER14> Depending on the indexes and other magic, more efficient might be:

select * from users where name = 'Captain Nemo' and id = (select min(id) from users where name='Captain Nemo')

trying to forget bad memories of forcing the Oracle query planner into submission with more hints than actual sql</comment>


Shaftoe – A Simple Web Service for Encrypting Messages Using PGP  - <AUTHOR> http://www.pedaldrivenprogramming.com/2013/09/shaftoe/

<comment><USER2> You might want to serve your javascript and submit your forms for a security- related website from a domain not called something like "toxiccode.com"…</comment>


Ask HN: What are some simple, clean, off-beat, and self-hosted blogs you follow? - <AUTHOR> I am looking for some new blogs to follow. Let me explain the three criteria in the title of this self post.<p>- simple: not blatantly self-promoting, focuses on a topic, discusses that topic, and the post terminates cleanly without discussing too many other distracting things.<p>- clean: clean design, does not hurt the eye, does not have ads, does not try to get me to click on other posts and readable both on desktop and mobile.<p>- off-beat: not one of the mainstream blogs like TechCrunch, Wired, etc., not one of the famous blogs like Paul Graham's, Norvig's, etc., one of the less known ones that has hidden gems one can learn something from.<p>- self-hosted: not hosted on a popular platform like medium, blogspot, wordpress, etc. hosted by the blog author on their own, could be hosted on GitHub pages and similar places. As long as the author is in full control of the pages, content, layout, etc. that's good enough.<p>My reason for asking this is twofold: I will get some good blogs to follow. I will get some inspiration to start my own blog. When I start my own blog, I would like to learn how to keep the pages simple and clean from others who have been blogging like this for sometime. <comment><USER2> When it became known that google was penalizing blogs for linking to others, link rolls / blogrolls started shrinking. Not too much later less and less blogs would appear in google results.

I miss the time we found and shared random gems are greatness through blog rolls.

Bring back the webrings! ( [https://news.ycombinator.com/item?id=21328084](https://news.ycombinator.com/item?id=21328084) )

Some time ago wordpress took the 'blogroll' post type out of core completely, and still today there are people asking for an embedded 'nofollow' tag adder in the core editor - and still it hasn't been done, though it's available in a plugin.

Unforseen side effects perhaps, adds to silencing / hiding the web that would otherwise be more freely shared.

Which is one of the things have led to RSS being less of a sought after thing. imho.

</comment><comment><USER3> My blog is pretty off-beat (largely about snails but also some general life stuff), clean-ish, and self-hosted, so I hope you'll forgive the self-plug: [http://liza.io](http://liza.io)

</comment><comment><USER4> There's this one about unintended consequences: [https://unintendedconsequenc.es/blog/](https://unintendedconsequenc.es/blog/)

</comment><comment> jerome-jh Fairly well known [http://lambda-the-ultimate.org/](http://lambda-the- ultimate.org/)

</comment><comment><USER5> A shameless plug for corememory.io, which includes a blog. I'm happy to make my GitHub repo public, if you want to take a closer look.

</comment><comment><USER6> stilldrinking.org is always a good one

</comment><comment><USER7> grumpy.website

</comment><comment><USER8> I've been recently following f3fundit.com, I used to read it back in 2009/10, but it disappeared around that time. One of the guys who was running it back then picked it back up and is reviving it. It's mostly startup focused business commentary. Longer-ish form articles. Pretty insightful. I've postem them to hacker news a few times. Would like to see more people reading indepentent blogs, vs the tech crunch's and norvig's.</comment>


Ask HN: Does Facebook only paying $1 salary break minimum wage rules? - <AUTHOR> Having a debate over coffee with someone on this today and was wondering. In theory, does Facebook (and others company's who do this with key people) only paying Mark Zuckerberg a $1 salary break minimum wage rules? <comment><USER2> While there is an executive exemption, those executives are supposed to be making not less than $455/week in _salary_ ([http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executi...](http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executive.pdf)) . As such, a $1/year symbolic salary is likely illegal.

As [http://www.laborlawtalk.com/archive/index.php/t-212858.html](http://www.laborlawtalk.com/archive/index.php/t-212858.html) points out, the Department of Labor doesn't get involved if this is the only issue. (It also suggests that a company pay the $455/week to be on the safe side.)

Thus, a $1/year CEOs could sue. While most of those making $1/year receive a large non-salary compensation, and there is a special exception for "Highly Compensated Employees", those must be "paid total annual compensation of $100,000 or more (which must include at least $455 per week paid on a salary or fee basis)". Quote from [http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executi...](http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executive.htm) .

However, regarding Zuckerberg specifically, again see [http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executi...](http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executive.htm) :

> Under a special rule for business owners, an employee who owns at least a > bona fide 20-percent equity interest in the enterprise in which employed, > regardless of the type of business organization (e.g., corporation, > partnership, or other), and who is actively engaged in its management, is > considered a bona fide exempt executive.

According to [http://whoownsfacebook.com/](http://whoownsfacebook.com/) , Zuckerberg owns 28.2% of FB, so is a bona fide exempt executive.

</comment><comment><USER3> $1 is OK -- "Under a special rule for business owners, an employee who owns at least a bona fide 20-percent equity interest ... is considered a bona fide exempt executive." \-- the fairpay document cited by /u/sehr

(he is completely exempt from the minimum salary requirement, and $1 is not illegal)

</comment><comment><USER4> [http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executi...](http://www.dol.gov/whd/regs/compliance/fairpay/fs17b_executive.pdf)

 _To qualify for exemption, employees generally must meet certain tests regarding their job duties and be paid on a salary basis at not less than $455 per week_

So I suppose it's illegal, but I doubt anyone would seriously enforce it

</comment><comment><USER5> INAL, but I'm sure there is a clause for compensation rather than a dollar figure. He is being paid in a different medium (stock), and the value of that is greater in dollars than the work minimum.

Bartering isn't illegal [http://www.irs.gov/taxtopics/tc420.html](http://www.irs.gov/taxtopics/tc420.html), so I doubt the executive compensation schemes are.

</comment><comment><AUTHOR> Thanks For Everyone's Responses. I wanted to make sure I don't get myself in trouble when I become a trillionare. :)</comment>


Niklaus Wirth: Compiler Construction (Addison Wesley book) - <AUTHOR> http://www-old.oberon.ethz.ch/WirthPubl/CBEAll.pdf

<comment><USER2> Also from Wirth: Algorithms and Data Structures <http://www- old.oberon.ethz.ch/WirthPubl/AD.pdf>

</comment><comment><USER3> It references fewer academic papers than the Dragon book (guess: by a factor of 20).

Examples are in "a subset of the language Oberon, which is a condensation of its ancestors Modula-2 and Pascal".

I'm annoyed by Wirth's EBNF, in which "0 or more repetitions of X" is notated at {X}, when X* has precisely the same meaning, and is much more familiar. However, Wirth's description of it is more intuitive for me as a coder than Kleene closure ("smallest superset of X, including \lamba, closed under concatenation").

 _conclusion_ : a compiler book, like the Dragon book, but less academic (that's a good thing) and with Pascal examples.

<comment><USER4> The dragon book is very old fashioned. (At least from an academic point of view.)

<comment><USER3> What do you mean? Just that it cites older references, and not newer ones? Or is it something about the style?

<comment><USER4> About the algorithmic techniques they employ.

And they do not even consider higher order functions.

<comment><USER3> You mean because they don't consider combinators for parsing?

That's the only example I can think of for higher order functions used in compilers. Combinators are much more powerful (though less efficient) than the construction of automata (which the Dragon book covers). I'm implementing parser combinators with some unusual properties at the moment, and then (hope to!) prove some things about them. I wish the Dragon book had covered this approach in the first place. So your comment is relevant to me.

<comment><USER4> I meant - they do not even mention that one could be writing a compiler for a language that includes higher order functions.

By the way I found the book 'Modern Compiler Design' (<http://www.cs.vu.nl/~dick/MCD.html>) much more helpful.

</comment></comment></comment></comment></comment></comment><comment><USER5> This is my favorite parser/compiler book. It is better on paper tho. :P</comment>