8bit Workshop - <AUTHOR> https://8bitworkshop.com/ <comment><USER2> Back in 2006 I heard about the Atari 2600 homebrew scene and was fascinated to read about the mind-boggling tricks required to write a game for the system (like, coding to the TV raster beam... madness!). I went down the rabbit hole for a while and learned 6502 asm, and ended up with this "sort of a game" \- [https://github.com/mrspeaker/plops](https://github.com/mrspeaker/plops).

It was a great learning experience and certainly made me respect the devs of the day - who were performing miracles given the hardware constraints, and luck of modern debugging tools!

<comment><USER3> I've been into the 2600 homebrew scene since "Making Games for the Atari 2600" came out a few years ago. I haven't made anything useful yet, but the community is great and very active. There's an awesome twitch channel[1] dedicated to 2600 homebrew, ZeroPageHomebrew. They do 2 shows a week, ~2 hours each. The developers and various AtariAge people are usually active in the chat. They're doing an awards show in February for homebrews made last year.

[1] [https://www.twitch.tv/zeropagehomebrew](https://www.twitch.tv/zeropagehomebrew)

</comment></comment><comment><USER4> I actually just finished reading "Making 8-Bit Arcade Games in C" in its entirety.

It definitely has a target audience: Those who know how to program in a language resembling C, who don't know assembler, don't care to learn assembler, but can understand basic syntax of assembler. And most importantly it is for people who want to gain an understanding of the internal hardware of some vintage arcade machines.

I was surprised to learn that Robotron doesn't use sprites.

<comment><USER5> I suppose I am surprised as well — but surprised too if it had. I mean, that would be a _lot_ of sprites.

I could ask you how it was done but perhaps I should just look into it myself. Thanks.

<comment><USER4> I suppose the real clue as to the sprites is that when two objects overlap and one moves away, it briefly leaves a black spot on the other object.

</comment></comment></comment><comment><USER6> > You can even write C or 6502 assembler code for Woz's creation, the Apple > ][+. Thrill to the unusual frame buffer layout and one-bit speaker output!

These folks get it.

<comment><USER7> C? Pascal, maybe, Cobol, Fortran, and even some oddballs like Forth, but C didn't catch traction until the mid-80s. I remember Chuck Sommerville (author of the original Snake Byte) and his father describing this "new language" (C) which has all the speed of assembly but is much friendlier.

Applesoft Basic and 6502 ASM (thanks to the Lazer Systems Interactive Assembler -LISA) were tops in those days.

<comment><USER8> The OP was quoting the 8bitworkshop page which has an environment, now, for programming the Apple ][+ in the manner decribed.

<comment><USER7> I understand now. Thanks for that clarification!

I spent a few minutes on 8bitworkshop and honestly, it's kind of exciting to think of coding the APPLE ][ in C.

I think it was the mid 1990s before I saw my first color-coding editor (Metrowerks?). All this for an Apple is just fantastic.

</comment></comment></comment></comment><comment><USER9> Maybe this will finally satisfy the people who balk when they see chip-8 pico-8 etc. described as 8-bit. This looks REALLY cool. I would love to see something similar for 16-bit/68000 console/arcade machines.

</comment><comment><USER10> Sweet! I love that, 30-odd-years-later, I'm actually programming for the NES and can flash my own carts. What a piece of hardware that console was. To be able to pass on this knowledge in an easy-to-digest format is really cool. Kudos to the authors!

</comment><comment><USER11> This reminded me of an interesting gent I met at last summer's San Mateo Maker Faire. He was showing off how he'd designed a Sinclair Z80 computer running on a FPGA.

Sadly I misplaced his info and can't find any info on the interweb.

Oh well, I can have some fun with this!

<comment><USER12> The ZX80 was a truly impressive model of simplicity. A Z-80 a ROM some RAM and a handful 74 series chips.

[http://searle.hostei.com/grant/zx80/zx80.pdf](http://searle.hostei.com/grant/zx80/zx80.pdf)

If you want to understand how a bunch of chips make a computer it's a good place to begin.

</comment></comment><comment><USER13> 8 bit games show what is possible when hard constraints are imposed on programmers. They did so much with so little. There's a great documentary about game audio, called "beep!" [1], where musician-programmers share stories about how they were given the absolute bare minimum memory to create sound effects and music. It's inspiring to hear what they managed to create.

[1] [http://www.gamessound.com/](http://www.gamessound.com/)

</comment><comment><USER14> Oh man, and I _just_ bought a bunch of stuff for my C64 to start developing games. Is the simplicity yet complexity of 8-bit coming back?

</comment><comment><USER15> About a year ago, I used this to make a hack of the Atari game "Freeway", which is just ambient drone sounds: [https://gist.github.com/rchrd2/9f4d8cedef373c05563f69486cf49...](https://gist.github.com/rchrd2/9f4d8cedef373c05563f69486cf497e6)

</comment><comment><USER16> I like how 'Making games for the Atari 2600', features a character quite obvious supposed to be Mario. I'm struggling to id the dragon though.

[https://www.amazon.com/gp/product/1541021304/ref=as_li_tl?ie...](https://www.amazon.com/gp/product/1541021304/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1541021304&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae)

<comment><USER17> Mario Bros, the arcade game, was ported to Atari a few years prior to the release of Super Mario Bros on Nintendo.

<comment><USER16> Did not know that thanks.

The box art also explains the blue hat (on the book cover).

[https://www.retrogames.cz/play_004-Atari2600.php?language=EN](https://www.retrogames.cz/play_004-Atari2600.php?language=EN)

</comment></comment></comment><comment><USER18> This is a really neat project, I look forward to diving into it deeper.

Within the last week or two, I've (re)discovered the Game Boy homebrew scene, which seems to still be rather active. It's still quite Greek to me, but I've been attempting to learn how to make games in GBz80 assembly.

[https://github.com/gbdev/awesome-gbdev](https://github.com/gbdev/awesome- gbdev)

</comment><comment><USER19> I sold my first program aged 15 back in 1981. It was a version of Space Invaders for the minimum-spec Acorn Atom squeezed into 512 bytes.

That kind of experience doesn't really go away, I still try and first find a clean minimal code before "expanding" the code to make it more easily maintainable.

<comment><USER20> how/where did one sell computer games in 1981?

<comment><USER19> By selling them to Computer Games companies who would mass produce them for sale via magazines or alongside computers in the early computer stores. In this case I remember the company was called "Bug-Byte".

</comment></comment></comment><comment><USER21> I own "Making Games for the Atari 2600" which is listed on this site. It's definitely worth picking up.

</comment><comment><USER22> Great to see this product evolve since v1.0. And a terrific tool for teaching game design and programming.

</comment><comment><USER23> The timing of this is superb - I literally just ordered an IceStick FPGA with the intention of recreating an 8-bit gaming platform, and I was wondering if I could somehow start playing in a virtual environment first! Can't wait to try this out...

</comment><comment><USER24> I'm impressed with the online verilog simulator. Very cool website.

[https://github.com/sehugg/8bitworkshop](https://github.com/sehugg/8bitworkshop)

</comment><comment><USER25> So gorgeous...love when these types of projects get out to the community.

Just loving this!

</comment><comment><USER26> Where has this been all my life? Thank you HN!

</comment><comment><USER27> This looks really cool!</comment>


Brain impairments in premature infants may begin in the womb - <AUTHOR> http://sciencebulletin.org/archives/9041.html <comment><USER2> I was born almost a month premature. I didn't start talking until much later than my siblings and am markedly less social. I've also read that brain lateralization may occur later in pregnancy and although my family is all right-handed, I am very left side dominant. It's kind of a bummer to read this, but at least anecdotally, it agrees my experience.

<comment><USER3> One question, where you in NICU?

<comment><USER2> I'm not sure. I know it was fairly serious, but I don't know the details.

<comment><USER3> Thanks

</comment></comment></comment></comment><comment><USER4> I was born more than a month premature and was in a NICU. I did ok in school/uni, but, I have very poor social skills compared to my siblings. I wonder if this is a contributing factor. Oh well, I guess there is nothing you can do after the fact. Just try to get on with things. On the bright side, my lack of social skills has allowed me to get really good at staring at a screen and pressing buttons! :)

<comment><USER3> :)

</comment></comment><comment><USER5> This is interesting. I remember learning in a developmental biology course that the completion of brain development is one of the signals that triggers birth for human neonates.These results suggest that there might be problems throughout the upstream brain development cascade in these premature infants.

</comment><comment><USER6> I was born 2 months early! Not sure I have anything to blame on it.</comment>


Ytrend – trending videos for your topics in real time - <AUTHOR> http://signup.ytrend.io/

<comment><AUTHOR> The MVP has the following core features:

\- Live hashtag search for relevant videos \- Display of related trending videos (the algorithm will look for updates every minute, the users can update the page in their preferred timing). Each video has a thumbnail, a headline as well as ranking \- Automatic display of sponsored videos based on the iPool API (business model: prerolls) and marked as such. Display of the most influential users based on the number of their followers with whom they shared the video. \- Subscribe to a topic and get a notification each time a certain video in this topic is gaining popularity.

</comment><comment><AUTHOR> Hi guys! We are developing Ytrend at the Media Hack Day in Berlin, a platform for trending YouTube videos which are going viral on Twitter. It lets you watch and follow the trending videos for your topic of interest with our web app in real time and discover the most powerful influencers. Would love to hear your feedback.

</comment><comment><AUTHOR> Our team: @Tim_Dettmers - data scientist @TimSuchanek - web design @SugarDanney - design @karbas</comment>


Ask HN: What is the best way to construct safe and secure C code - <AUTHOR> Despite the resurgence of safe language that prevent common pitfalls in C language like Rust and Ada, things like Linux and NetBSD are still written in C. What is the best way to construct safe and secure C code for contribution to Linux or NetBSD? Preferably free solution <comment><USER2> What is the problem? Even extremely type safe pure functional languages have problems that C doesn't have. It depends on the problem, the context.

I can't think of much related to C code specifically. C code has it's pitfalls for sure, but with discipline (a lot of discipline) most can be avoided. There are tools. Find out about them. Try them. Learn about what they can do for you. Use them as part of your builds.

Don't rely on tools because even with these tools, the best way is finding out the other things the tools can't catch -- and these are not at all obvious. I was just thinking of some of Daniel J. Bernstein's code and even the few flaws found in it. _It also shows how hard it is to be sure of the correctness of any length of program without trying to run it._

Read.

What is it that is not working?

What do you need?

Ask: What needs to be done?

Keep It Simple Smart (KISS)

Learn what not to do.

 _There are no ready answers._</comment>


Uber Executive, Linked to an Old Harassment Claim, Resigns - <AUTHOR> https://www.nytimes.com/2017/02/27/technology/uber-sexual-harassment-amit-singhal-resign.html?_r=0 <comment><USER2> Should it be marked as a dupe given that it's the NYT coverage rather than Recode's?</comment>


Show HN: Job Change Notifier - Breakup Notifier for LinkedIn - <AUTHOR> http://www.jobchangenotifier.com/

<comment><AUTHOR> Job Change Notifier sends you an email alert whenever any of your LinkedIn connections change jobs. I built this as a weekend project using the LinkedIn API.

For startups (like ours) that sell their products to other companies, you can find out when your company's allies get promoted or move into decision-making roles. Or, use it to generally keep up to date on your professional network.

</comment><comment><USER2> Cool concept. Why the email verification?

Also, maybe this is a common issue for email heavy / notification apps, but I almost wish there was something else to do after signing up. Can't think of anything useful though, just feels like there's an opportunity for more somewhere there.

</comment><comment><AUTHOR> Thanks! The email verification is to make sure that users don't enter someone else's email (thereby spamming them), and also so I know that the emails aren't getting flagged as spam.

Fully agreed with your point about wishing there was something else to do after signing up.</comment>


Regarding Semantic Versioning - <AUTHOR> https://www.danielmoch.com/posts/2020/09/regarding-semantic-versioning/ <comment><USER2> bit of a rant, but all very reasonable. in general though, i find that people who get this upset about semver tend to view the "contract" of semver to be an ironclad one (right down to being automatically determined by the package ecosystem rather than by the maintainer).

I am much more persuaded by the argument (not mine, i get this from more experienced maintainers) that semver is a _social_ contract, because what constitutes a bugfix vs a new feature vs a breaking change is exactly as well defined as "what is this piece of code really supposed to do"? aka it's not well defined at all. all software "contracts" are underspecified, given enough users and scale.

remember Hyrum's Law: "With a sufficient number of users of an API, it does not matter what you promise in the contract - all observable behaviors of your system will be depended on by somebody." Even bugs will be relied on and people get pissy about semver when you break them!

<comment><USER3> When you think in terms of semver as a social contract, one can also take into consideration what the documentation says. If the docs don't explicitly say you can do something, then it's entirely reasonable for the library author to say "well, that's relying on undefined behavior, you should not do that".

<comment><USER4> This is why when I'm building APIs or libraries that are meant to be used by developers I won't consider a feature "done" until it's both tested AND documented.

The documentation is the contract that I use for semver. If something is documented, I can't break it without bumping the major version number. If it's an undocumented internal class or function I can change it any time I like.

<comment><USER5> Interesting things happen around this "undocumented" cases.

For example, imagine you expose a "map" API and you explicitly don't mention it's a hash map or some tree. You also don't claim the the iterator will be in order, but you fail to document that you explicitly don't promise any order at all.

Some users will not read the documentation and say "wait a minute, it doesn't claim whether any ordering is guaranteed nor it claims the contrary, hence I must assume it's undefined behaviour thus I can't rely on any ordering".

Instead some users will look at the behaviour and assume the documentation just forgot to mention that aspect (and if the implementation indeed iterates the map in order they'll just assume that's what the documentation should have written).

After all, just as code, documentation can have bugs and will be amended in subsequent releases.

Now, you finally realize that you forgot to say "the iteration order is undefined" and make a new release with that documentation fix. The question is: would you consider this a major "breaking" change or a minor point release?

</comment></comment></comment></comment><comment><USER6> I don't like semver.

If the library follows the rules, then...

Separation of minor and patch versions doesn't make sense. Both in the case of a minor or patch version change the client should be able to upgrade to the latest version.

A major version change means that backwards compatibility is likely broken. In that case, we're actually talking about a new library.

Therefore you can just use a single integer as the version number, and if you break backwards compatibility, then you change the library name. If you had a library called MyLib with version 1.0.0, then you can just go with version 1 instead. In case of a patch (no functional change), you go to version 2, and all clients can immediately upgrade. Then if you add a new feature, but backwards compatibility is preserved, you can go with version 3, and all clients can immediately upgrade. If you break backwards compatibility, then you rename your library to MyLib2, so it's clear to everyone that this is a new library (with similar functionality).

The real reason for minor and patch versions is that libraries actually don't follow semver, and patch version change means 'small change, don't worry about re-testing', minor version change means 'not that small change, you should re- test' and major version change means 'we've very likely broken most dependencies'.

In real life, you need to re-test anyway.

<comment><USER7> > Separation of minor and patch versions doesn't make sense.

Yes, it does.

> Both in the case of a minor or patch version change the client should be > able to upgrade to the latest version.

Yes, but if it's a minor version change then, as a developer, I _also_ want to review the changelog for new features I should consider whether we should add backlog items for refactoring to take advantage of, while a patch doesn't create that need. There is more space for SemVer-aware tooling than "is this safe to update", though that's obviously the most important single piece of information.

> The real reason for minor and patch versions is that libraries actually > don't follow semver, and patch version change means 'small change, don't > worry about re-testing'

No, you always worry about retesting because SemVer is a statement of API intent, but does not include a guarantee against bugs, including new or modified bugs.

<comment><USER6> > No, you always worry about retesting because SemVer is a statement of API > intent, but does not include a guarantee against bugs, including new or > modified bugs.

That's what I do, yes. What I tried to explain is how library devs generally update versions.

> Yes, but if it's a minor version change then, as a developer, I also want to > review the changelog for new features I should consider whether we should > add backlog items for refactoring to take advantage of, while a patch > doesn't create that need

This sounds like a good argument; although in my professional experience I found that 1) I need to re-test anyway 2) I need to read the change description anyway (as bugfixes most of the time mean behavioral changes, so I want to understand why the patch was necessary).

So overall I understand the theoretical argument behind semver, but I still don't see a very strong argument behind it. At least not as strong argument as popular semver has become.

</comment></comment></comment><comment><USER8> Rich Hickey, the creator of Clojure, has a wonderful talk where he made a case against Semantic Versioning: [https://www.youtube.com/watch?v=oyLBGkS5ICk](https://www.youtube.com/watch?v=oyLBGkS5ICk)

</comment><comment><USER9> In theory it should be possible for a package manager to check the public API for obvious breaking changes and throw an error if the major version has not changed.

Its been done as a research project [1] but I don't think it has been done in any major language or package manager.

[1] [https://drops.dagstuhl.de/opus/volltexte/2018/8456/pdf/OASIc...](https://drops.dagstuhl.de/opus/volltexte/2018/8456/pdf/OASIcs- ICLP-2017-6.pdf)

<comment><USER10> Elm enforces this since 2014 at the package manager level. They are able to do this because since the language is pure, the compiler knows if a function's signature has changed. If you are changing implementation details that don't affect data transformation, then that would just be a dot release. I haven't actually published an Elm package, but from what I've read this seems like a great setup.

<comment><USER11> Function signature is only half the battle. The semantics can change without the signature changing. This could be caught by a unit/functional test, but then you'd have to have 100% semantic interface coverage. Which is not quite worth it for most libraries/packages.

</comment></comment></comment><comment> try-try-again semver is a nice concept, but it doesn't work in practise. If it did then yarn.lock and the npm equivalent wouldn't be needed. But clearly locking in exact versions of modules is the only sane way to have reproducible builds.

<comment><USER12> I tend to see "reproducible" used to mean things like what nix/guix aim for. SemVer is of course insufficient for that, but never promised to be.

In terms of "this set of semvers can be satisfied in a way that the project will always build", yeah, it'd be nice if semver could be used like that rather than as a rule-of-thumb.

</comment></comment><comment><USER13> thats why i pin my deps to the exact versions in production apps :)</comment>


Official: 3D Star Wars Starting 2012 - <AUTHOR> http://techland.com/2010/09/29/official-3d-star-wars-starting-2012/

<comment><USER2> I have to wonder why they are doing this. Money might not be the only reason. If you think about it, Fox will probably pony up the money to 'test' new technology on Star Wars. So, I wonder if this is a golden opportunity to build a technology that could better up convert/ sample any 2d film to 3d.

With that in mind, I wonder what the tech is like, what does it do?

Will it detect object edges and try to give them a z position on the fly? With a single camera? ( that's pretty sweet tech, AR could use that. )

I know there was some work on using the vibration in an orthoscopic camera to extract out the necessary angles to generate a 3d image.

With movies, they seem to develop tech that will get them close, and then pay someone to tweek it. ( how close will it get them? )

The concern I have with this approach is how they are going to get the details of items to pop in 3d. One of the things that Avatar did so well was how every item, even the jewelery seemed to have depth to it. ( after seeing it in imax 3 times you have to wonder )

</comment><comment><USER3> I'm surprised, but I guess you have to feed the franchise.

I'm just waiting for them to fully animate Mark Hamill, Carrie Fisher, and Harrison Ford exactly the way they would have looked if they would have played the part in the early 80s. If the wierd looking Jeff Bridges from Tron Legacy is the best they can do now, they have a long way to go. A study was done some years ago that showed that the closer something got to looking human that wasn't, the less we liked it, so they'll basically have to be spot on. Then they can create the next 3 in the saga (and Lucas claimed he would never make them, but I know they will be made).

</comment><comment><AUTHOR> I cant wait to see it in 3D. But thinking that they are just trying to follow the trend of 3Ding everything..???</comment>


DuckDuckGo Changes Homepage Logo, Links to StopWatching.Us Call Campaign - <AUTHOR> https://duckduckgo.com/

<comment><USER2> There's something to be said for being in the right place at the right time, but they've done a great job of going above and beyond to embrace this moment. Great work.

</comment><comment><USER3> I wonder how they plan to monetize their service I've only found this regarding their financial model [http://duck.co/topic/financing- model](http://duck.co/topic/financing-model)

<comment><USER4> I believe they use the same model as Google, et. al. Sponsored listings for relevant searches.

 _edit_ : They also have an affiliate program when linking to eBay and Amazon ([http://help.duckduckgo.com/customer/portal/articles/216405-a...](http://help.duckduckgo.com/customer/portal/articles/216405-advertising))

</comment></comment><comment><USER5> I tried it, and the results aren't up to par with whatever I'm searching. They'll be forced to relinquish data like all the other companies when they get big enough.

<comment><USER6> If they're not saving any user data, relinquishing all their user data to the NSA won't be a problem.

<comment><USER7> Until the NSA requires them to save it.

</comment></comment></comment><comment><USER8> I've noticed that people seem to think DDG is the only good privacy-conscious search engine out there. Lately I've been using StartPage[1], which simply passes through anonymized Google search results. So you don't have the same quality degradation as using DDG, and therefore never need to degrade your privacy for better results with !g.

[1] [https://startpage.com/eng/protect- privacy.html](https://startpage.com/eng/protect-privacy.html)

<comment><USER9> The "world's most private search engine" pops up the following error message when searching:

"You may be using a privacy-oriented browser extension that conflicts with Startpage. Please disable this extension and try your search again. If this does not help, please contact us at (212) 447-1100 (USA) or autoquery @ ixquick.com."

Not a good look.

</comment></comment><comment><USER10> What I am wondering is how can DDG show correct PPC results with out collecting user data. They must transfer searches to bing in order to display correct adverts.

[http://help.duckduckgo.com/customer/portal/articles/216405-a...](http://help.duckduckgo.com/customer/portal/articles/216405-advertising- and-affiliates)

<comment><USER11> They collect data. They do not collect personal, identifiable data.

[https://duckduckgo.com/privacy](https://duckduckgo.com/privacy)

</comment></comment><comment><USER12> So far of using it I checked same results from google from time to time. So far top results always seem to be almost the same.

<comment><USER13> That is because they source results from Bing and Yandex(and also their own index).

I wish them all the best. Prosper DDG!

[http://help.duckduckgo.com/customer/portal/articles/216399](http://help.duckduckgo.com/customer/portal/articles/216399)

<comment><USER14> I wish them well too, and talk about them to privacy-minded friends, but I dont use them personally because I almost always wind up going to Google anyway...

Edit: Its been some months, Ill give them another try.

<comment><USER15> I didn't really embrace DDG until I got the hang of all the bang commands. Make an effort to try those out and maybe you'll find the same.

<comment><USER16> I'm not sure I get the advantage of DDG's bang commands over using browser search keywords. I have one or two letter keywords for the few site specific searches I occasionally use (I find I use Google for almost everything, these others rarely, for very specific things). With bang commands I don't get to pick the mnemonic and it is often more than 2 letters. Also, for some people bang commands simply might not cover all of their specific searches (I just checked that they do for me, but, as I said, with much longer syntax than my browser keywords).

</comment></comment></comment></comment></comment><comment><USER17> Tried this service out searching for the data they have on me. The first impression was: Why some of my old files appear on the top?

</comment><comment><USER18> Ok.</comment>


Ask HN: Which is the best php framework in terms of performance? - <AUTHOR>

I have been thinking about writing a web MVC based application in PHP (though i dont have prior php programming experience)
Initially i settled with Zend framework, and was satisfied with the tutorials available; the rich feature set it presented; but lately googled and found that the number of requests that it can handle is very meagre.
Since I did not hear about any enterprise applications built in the Zend framework I decided to switch to DooPhp.
After researching a bit abt the various available frameworks (Zend Framework, Code Igniter, Yii, DooPhp, Prado, Kohana, SolarPHP ....  ) I found that there isnt much genuine comparisons done!
We are building an application which will connect to a database(Postgres) and would do basic CRUD operations, require features for sending html mails, pdf creation and reporting tools(to represent data graphically).
We dont expect very heavy loads; but in case we would definitely want to scale.
Which is the best php framework I should choose? <comment><USER2> awin,

You'll see different responses from all different kinds of people to this. Everybody has a different allocation to the relative weights of different aspects of the system.

However, I would advise you to not worry much about application performance. Focus on programmer performance instead; search through Coding Horror's blog for more info on that.

Your difficulty will be reaching the point (in terms of users/loads) where you need to scale. I mean, how many users would you need before you ran too high of a load on some of the beefy Amazon EC2 instances? For almost everyone, their app will never reach that scale.

Also, scaling the application layer is little more than moving sessions to a database and putting a load balancer in front of your webservers. DB stuff is a lot harder, but for basic CRUD stuff you're going to be fine for a long while.

As far as performance goes, Paul Jones has a blog post (or two) on the performance of some different frameworks. I think Zend / CodeIgnitor were the two fastest, followed by symfony. CakePHP was at the end of the list, although the speed difference between top and bottom frameworks was just a factor of 2 or so. And Cake has seen about a 33% speed up in their codebase since then.

In short, don't worry about scaling. Pick the framework that looks like it will make your coders more productive.</comment>


Show HN: React Hook Form – Simple Form Validation - <AUTHOR> https://react-hook-form.com/ <comment><USER2> I strongly recommend to automate form generation based on JSON schema what will enable zero coding for maintenance tasks like e.g. synchronization with model changes.

As form code is the most important entry point for security flaws in web applications it is also the most expensive and it is not a good idea having to touch production code for every little backend change. This looks like PHP coding 15 years ago. Do not do that.

<comment><USER3> Can you point to a real world example of what you mean?

I think I have heard of something similar but it didn't seem to have caught on in any major web frameworks that I know of (strongly typed json API server which generates runtime validators on frontend and backend). Even then most people want control over the presentation of the form and wouldn't want to create fields from the schema (e.g. a number type is sometimes a slider and sometimes a drop down)

<comment><USER4> A friend of mine build a solution like this:

[https://laraform.io/](https://laraform.io/)

If I have a form anything more complex than a login page, then I usually use some kind of generator based on a schema.

<comment><AUTHOR> interesting project! thanks for sharing

</comment></comment></comment></comment><comment><USER5> I'm going to hijack to request some help understanding whether hooks are a good thing or.... a mediocre thing I just have to accept. Here are my questions:

1) Is it just me or so hooks really push you to commit to either "state comes from props" or "state is held internally" but you REALLY can't mix the two?

So, if I have say, a searchable select box, I must either A) be stateless, and let some other part of the system store the user's typing, or B) use a state hook, but NEVER react to state changes coming in from outside.

I.e. I am tempted to use useEffect to notice my props and my state being out of sync so I can sync them back up, allowing either the user or the backend to provide changes. But that also feels bonkers.

Doing the same thing through message passing also seems bonkers, React was created to replace having to pass messages around to every component that needs updates, wasn't it?

2) Is there any point to useCallback? Is it literally the same thing as returning a function from useMemo?

3) Is it just me or is useRef kind of a horrible hack? Lots of articles tell me to do myRef.current = myState in order to hack around the fact that state changes don't take effect until the next tick. But now we no longer have a single source of truth, and introduce lots of sync bugs. Also have to type .current everywhere.

4) Should I be using useEffect instead for solving the issue with #3?

I just have this sinking feeling that at least one of useRef, useMemo, useCallback, and useEffect shouldn't exist, but I am only three months in to React and I can't really see the forest through the trees.

<comment><USER6> 1) You could mix the two around. E.g. using a state hook and the imperative handle hook. By using the imperative handle, we could update the state from the outside by exposing the setState function.

2)There are several points, but I think the most important one is simply just to save time instead of using useMemo as passing callback to child components is pretty common. And yes, it is the same. The official docs literally said that. _useCallback(fn, deps) is equivalent to useMemo(() = > fn, deps)._ [0]

3)You can call it a hack I guess. If you don't want to wait for rerender, you can keep a value inside a ref! While class component can just create a property, function component doesn't have that. That's where the useRef came in, and that's just one use of useRef. I'm not really sure about the articles you mentioned. I never faced a use case where you would use a state and also keeping it inside a ref, can you share an example link maybe?

For the .current part, since refs is originally used to access the DOM. And the DOM node could change for whatever reason. To access the node, we use .current.

4) It depends, but I don't think keeping two things in sync using useEffect hook is a good idea. I'm not really clear about the issue, so I can't say much.

After using React for a while with class and lifecycle, I think all the available hooks is really nice. Feels like we got a fresh wind while developing with React. Using hooks and not have enough contrast to make me feel I can no longer code React without hooks. They let you reuse and share the same logic for different components or projects easily. Less code to read, and for me, functional component with hooks is way easier to read compared to a class component.

Refs: [0] [https://reactjs.org/docs/hooks- reference.html#usecallback](https://reactjs.org/docs/hooks- reference.html#usecallback)

</comment></comment><comment><USER7> I've never seen a benefit in storing a form state in react state, forms already hold a state in the DOM, you can read, update and validate it ([https://developer.mozilla.org/en- US/docs/Learn/HTML/Forms/Fo...](https://developer.mozilla.org/en- US/docs/Learn/HTML/Forms/Form_validation))

for example, after a form submit event, you can do

      const elements = [...e.target.elements].filter(el => el.name); // all form elements with a name
      // invoke onSubmit prop with form data:
      onSubmit(
        elements.reduce((o, el) => ({
          ...o,
          [el.name]: el.type==='checkbox' ? el.checked : el.value
        }), {})
      );

<comment><USER8> Part of the point (from a React perspective) is that everything in a React UI is driven by the data - so your data (state) should always control the UI.

If you store some state in JS variables, and some in the DOM (forms), then that's not true anymore. That's not necessarily a problem if you're expecting it (uncontrolled components are a valid React paradigm) - but if you're expecting controlled components, but some of them aren't, then you can run into trouble.

Also, once you're used to controlled components, it actually feels like a hassle to keep the data in the DOM - you have to constantly be getting it from the DOM to do form validation, submitting, field resetting, etc.

Again - I would say that neither is more right or wrong; but it's more of a style choice.

<comment><AUTHOR> This is a really good reply! In fact, React hook form is based on uncontrolled components, I guess the mainstream is still controlled, but I would like to give some fo the love to uncontrolled and explore the benefits from it.

</comment></comment></comment><comment><USER9> Hey author, I'm a long time reader and this is my first post on here! That being said, I absolutely LOVE your library! I've been working on a project for a client (a react webapp). I initially built out our signup workflow and delayed completion on that feature until the very end of the app simply because custom validation was a pain (and with tight deadlines, I really didn't want to write one from scratch). I came across your library about two weeks ago and it fit like a GLOVE! Custom validation was easy, adding in regex expressions was straightforward, and your docs are very clear! Kudos for this project, you've made my life much easier. My app happened to also be built entirely with react hooks so this really was a great fit. And the dependency size is much smaller than competitors I was looking at. Thanks for your hard work I definitely appreciate it!

<comment><AUTHOR> Thank you very much byahya for your kind words and the lovely message. I am really glad could help you out with building forms. This is also one of the reasons why I am so passionate about building open source projects, be a dev only also me to solve particular within a product or project. it's so good we have an amazing community who are sharing their idea and code around the world. It's my 2 cents to give back the community and help out others and of course doing something meaningful in my life :) I really appreciated your feedback and your encouragement, feel free to ask a question or submit issues in the GitHub. <3

</comment></comment><comment><USER10> Hey author I like this! It's very close to what I use for simple forms, my library `forn`:

        import forn from 'forn';

        export default () => (
          <form onSubmit={forn(data => console.log(data))}>
            <input name="firstName" placeholder="First Name" />
            <input name="lastName" placeholder="Last Name" />
            <button>Send!</button>
          </form>
        );

Test it: [https://codesandbox.io/s/agitated- johnson-3hv96](https://codesandbox.io/s/agitated-johnson-3hv96)

Why do you need the _register_ though? Is the hook needed to hold the refs? Is it only for compatibility with React Native or are there other reasons? With forn I use `e.target`, which should not be available in RN.

<comment><AUTHOR> hey, nice lib you got there :) When I was deciding the API, I did have the idea of just collecting form input automatically (similar to forn), but there are few reasons which lead to the final decision:

1\. Support React controlled component. eg some of the popular component libs, they are wrapped input inside their component and it's hard to predict which to include during the form submit.

2\. React Native <3

3\. Attach validation rules, messages and async validation on the individual field level.

<comment><USER10> Ha thanks! You described perfectly the limitations of `forn` and why I only use it for simpler forms. React Native is a big pain from tine to time though I barely use it. I also made [https://picnicss.com/](https://picnicss.com/) so I'm used to use the native form elements underneath and the rest being just a pretty wrap. But yeah, as soon as I add a 3rd party form lib all goes to hell and `forn` doesn't work well anymore.

I'll try it next time I have to deal with React Native!

<comment><AUTHOR> wow so cool~ [https://picnicss.com/](https://picnicss.com/) love it. stared the project. <3

</comment></comment></comment></comment><comment><USER11> I've been using this for the past few weeks and I'm very happy with it. I really appreciate the minimalism. It's easy to have schema driven forms _and_ uncontrolled inputs with this library because it doesn't have many constraints.

Also, maybe it's because of hooks, but it feels like less code than usual is required for forms. I once built a massive "multi page questionnaire with conditional logic" feature, using a superset of json schema and a wrapper around react-json-schema-form (the Mozilla one). That was two years ago and a LOT of code (I used a singleton controller to parse local updates and merge them into a global schema). If I had hooks and this library available then, it would have been significantly less code.

<comment><AUTHOR> wow thanks, chatmasta, I am really glad to hear this great feedback! I would like to put the credit towards React Hook because it really saves us to write less code and not to worry too much about the lifecycle methods.

</comment></comment><comment><AUTHOR> Hi guys,

I have built a custom hook for form validation, please check it out and feedback welcome <3

<comment><USER12> Landing page is pretty impressive. Nice work :)

<comment><AUTHOR> Thank you. I was try to giving everyone some good context why built this form lib.

</comment></comment></comment><comment><USER13> Front-end has gone completely off the deep end. I'm looking at the source code and there must be 4 or 5 dozen modules, totally 5.1kb gzipped! And as far as I can tell all it does is copy el.value onto an object.

What ever happened to care in our profession? What happened to putting the users first? If you are adding 5kb of overhead to your website _for this_ , it is criminal malpractice.

<comment><USER14> This is like saying that backend's gone crazy because people are loading MBs of frameworks just to print "Hello World" on the screen. Well, yes, but those are just examples, they're meant to be simple to understand, not a realistic use case. React is a tool for building complex web apps and in RL such app would do a lot more things and then it'd start to make a lot more sense using it. If you do something this simple, then by all means don't use it.

<comment><USER13> > This is like saying that backend's gone crazy because people are loading MBs > of frameworks just to print "Hello World" on the screen.

They are not equivalent at all, you can add as much bloat as you want on your backend as long as you scale it. The cost is put on you. Front-end bloat directly affects the user. We used to justify every library addition, now people just add a library for every trivial task to make it slightly "nicer" as if that matters at all.

<comment><USER14> Issue here is with criticizing over-simplified Hello World examples for unnecessary "bloat" that is not really a bloat in real life. And people do add unnecessary libs in their code, I agree, but that's another story...

</comment></comment></comment></comment><comment><USER15> This looks really good. But is there a non-hook version for use in class components? I'm imagining it might look like this:

        class MyForm extends React.Component {
          formState = new ReduxHookForm();

          render() {
            const { register, handleSubmit } = this.formState;
            return (
              <form onSubmit={handleSubmit(this.handleSubmit)}>
                <input name="firstName" ref={register} />
                <select name="gender" ref={register}>
                  <option value="male">male</option>
                  <option value="female">female</option>
                </select>
                <input type="submit" />
              </form>
            );
          }

          handleSubmit(data) {
            console.log(data);
          }
        }

<comment><AUTHOR> yea would be similar for class component :)

<comment><USER15> Sorry I don't understand. Last time I checked, hooks are not usable from class components. How can I use react-hook-form from a class component?

<comment><AUTHOR> Sorry I meant once I made it work, and it will be the syntax</comment></comment></comment></comment>


Why your previous developer was terrible - <AUTHOR> https://medium.com/p/506a06ae35ea?

<comment><USER2> When a new developer takes issue with decisions and practices adopted by their predecessors I often worry (usually correctly) that they do not understand the system/process/objectives.

With enlightenment comes an understanding of the choices already made. There might still be a case for revision but any such revision is now more likely to pay dividends.</comment>


Ask HN: Importance of website name? - <AUTHOR>

Here's my question: how important do you feel the name of a website is. Obviously it helps slightly on the SEO front, but that doesn't really matter.
Should the name/domain be descriptive of the service/content provided. For example, if I was starting a news website, should I chose "news.com" over "gawker.com", on the logic that people will find it easier to remember (thinking just in terms of if it is relevant, not easy of spelling, length etc), and on the logic that when chosing a new site to use, people will pick the domain that seems the most logical.
My belief is that it is not important, and the success of sites like Yahoo, Google, Gawker and so many others backs me up, in my opinion.
Do you agree or disagree with me? <comment><USER2> My hunch is that "short, and pronounceable, is preferable", but other than that, I think there is a sufficient number of examples (including the ones you mentioned) to make the case that a web site's domain name need not be descriptive of the site's service or content. The challenge is to do whatever it takes to build up name/brand recognition, but I think that would be true regardless of what sort of name you went with.</comment>


Ask PG: How much did the lunch with you sell for? - <AUTHOR>

Just curious how much the Lunch with Paul went for at the Harvest Moon Auction.<p>Thanks! <comment><USER2> $1600 - 2 spots (so total $3200 for two hours), I was there. It was a silent auction before and it became a live auction due to high demand.

<comment><USER3> I was there too, I don't remember there being two lunches auctioned off?

<comment><USER2> The first one went for 1600 and the second one was done sort of in private immediately after since there were two hours available.

</comment></comment></comment><comment><USER4> Original post: <http://news.ycombinator.com/item?id=1863923>

</comment><comment><USER5> If anybody is interested for a comparison, a lunch with Randi Zuckerberg recently sold for $10k at a charity auction. Mike Arrington was the winning bidder:

<http://twitter.com/randizuckerberg/status/2954716698906624>

<comment><USER6> So she is sister of Mark.

</comment></comment><comment><USER7> Also, do we know what the value of the silent auction was when it was converted to a live auction? Several people had commented that they couldn't be there in person, but wanted to bid anyway.

</comment><comment><USER2> @zck - no idea - I spent almost an hour looking for the item and then was told that it had already been converted to a live auction due to high demand.

</comment><comment><USER8> And while we wait for pg to tell us the amount, I propose a game of HN Predictions. The rules:

* You must make your prediction before the event is determined.

* You can't edit your prediction afterwards.

* As a participant, you commit to going through the winner's past comments on HN and giving them at least 3 karma points. The winner would therefore need to have made at least 3 comments...

Let whoever is the closest to the actual amount, win! At the very least this should make for an entertaining Sunday morning =)

Here's my prediction: $2,400

<comment><USER9> I'm surprised you're so flagrantly suggesting the use of HN karma points as a reward for a contest.

If they have any value at all, it is in their use as a proxy for someone's contribution to the HN community (which is very much undermined by stunts like this).

<comment><USER8> A lot of users make very valuable comments which are often overlooked for various reasons. I was hoping this would give them some deserved attention. Also, having spent a bit of time looking at various users' comment streams, I've found myself having a better understanding of them — makes for a stronger HN community. And, finally, being able to make decent predictions is a valuable skill for any entrepreneur...

Hope that helps explain why I believe this is beneficial and not just fun.

<comment><USER10> I agree with the sentiment but not with how you're proposing to implement it.

You say "overlooked for various reasons". Let's work on those reasons not try to patch a system. Why should me being able to guess (not "predict" as you say) the value of a dinner translate into retrospective karma?

Also, what is karma, really? What is it really measuring?

<comment><USER11> That contest should have been announced for the bragging rights alone.</comment></comment></comment></comment></comment>


Fun with Magic - <AUTHOR> http://justinkan.com/fun-with-magic

<comment><USER2> I don't think these particular examples are that exciting. Rich people can already get this type of concierge service from existing places, like a personal assistant, virtual personal assistant [1], or a credit card concierge (you probably have one [2]). If you are spending enough money, getting somebody to help you isn't hard.

I still don't understand how the service would apply to the average person, or how it could apply enough to make lots of money. Average people really try to be efficient with their money, and don't pay money for that many things they can do themselves. With annoying tasks like laundry, there are economies of scale so you can actually provide consumers with better service for less money, which is a win/win. But with a concierge, you are always going to have to pay the concierge money, and will they really be able to provide enough expertise to be worth it? I'm skeptical.

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

2: [http://www.creditcards.com/credit-card-news/putting- concierg...](http://www.creditcards.com/credit-card-news/putting-concierge- service-to-test-1433.php)

<comment><USER3> As a person who grew up poor-ish [1] but is now reasonably well off [2], I have developed a little theory on why the market of make-your-life-slightly- easier-by-hiring-a-human-through-an-app services is booming so much right now. Everything from Uber to Washio, Handy, and Task Rabbit falls into this market for the purposes of my theory.

We are lazy. Very lazy. We think we're busy, and to an extent we are. We've been brought up by frugal parents.[3]

As a result, we don't know how to get things done for us. We feel bad hiring somebody to do something for us. We don't know how to handle the idea that we can afford to have people working for us.

Using an app makes this easier. It reduces the emotional impact of it all. You're just using an app after all, you're paying a company to hire a person to do something. You're offloading your bad feelings onto a company.

To top it off, we don't even know where to get someone to do things for us. We didn't grow up with an infrastructure of hired help, we grew up with an infrastructure and worldview of working for others. The idea of having people work for us is fundamentally alien.

Apps help.

[1] low middle class single parent kind of poor where you'd rather spend two days painting your own apartment poorly than pay a professional to do it. And by poorly I mean, have your high school age son do it (me).

[2] software engineer in San Francisco

[3] either because we used to be poor, or because we weren't the rich kind of middle class (here I'm making the distinction that upper class are people who don't need cashflow to support their lifestyle)

<comment><USER4> By your standards, I'm super poor, because I've painted my own apartment(s) plenty of times. Software engineer in LA.

<comment><USER3> That was just an example. _It depends_.

Maybe you value the relaxation of painting higher than having professionally painted walls. Maybe you don't value your time higher than what a professional in LA charges. Maybe you're just one of those people who would drive 5 minutes out of their way to save 10 cents on gas. ([https://xkcd.com/951/](https://xkcd.com/951/))

My point was in the general idea, not in the specifics of my examples.

And it just felt more interesting to mention the wall painting bit rather than the bit about my mum shuffling money around various credit cards so we could afford groceries without having any cards canceled. _shrug_

</comment></comment></comment></comment><comment><USER5> Read the beginning of the article, was mildly interested. Kept reading about how he arbitrarily decided to book a helicopter ride and buy an expensive motorcycle through a texting service just to test it out, and was no longer sure if it was honestly a troll or not. Came here to see the comments, apparently was not a troll. Wow.

So the question I have here is, was he aware of how outrageously douchey this article comes off with the examples being off the cuff entirely over-the-top money blowing that he apparently regularly indulges in, or are rich people so in their own world that they don't even realize how normal people live and that writing something like this comes off as absurd to most people?

And another question that comes to mind too. He tried to make a startup that solved a similar problem a while ago, and mentioned this in the article. Are rich people seeking further conveniences for their already rather convenient lives entirely blind to the range of problems middle or lower class people deal with? Do they not care about these types of people and their problems because it simply not relevant to them?

I know this sounds very accusing of rich people, and while I am always personally a little shocked to see money squandered carelessly while so much suffering happens in the world, I honestly do not have anything against these people at all. Everyone has their own path in life and can and should make their own choices as they see fit. I am just honestly curious how it is rationalized, and the thought process surrounding it for people like this.

Edit: Did some googling and turned up these two quora answers:

\- [http://www.quora.com/Do-rich-people-feel-bad-or-guilty- when-...](http://www.quora.com/Do-rich-people-feel-bad-or-guilty-when-others- find-out-they-spend-a-lot-of-money-on-something-that-people-with-less-money- might-consider-excessive-or-couldnt-afford)

\- [http://www.quora.com/How-do-rich-people-feel-about-the- fact-...](http://www.quora.com/How-do-rich-people-feel-about-the-fact-that- many-people-live-in-extreme-poverty-while-they-spend-large-sums-of-money-on- luxuries)

The answers given are essentially "they make excuses for themselves and set up situations that rationalize it, such as 'I deserve this' and 'I could never make enough of a difference', etc." I don't quite feel satisfied with this. I would like to hear an answer from a legitimately very rich person still just out of curiosity!

<comment><USER6> I do not know Justin and I can't speak for him, but it seems to me that he has earned every penny that he has.

> So the question I have here is, was he aware of how outrageously douchey > this article comes off with the examples being off the cuff entirely over- > the-top money blowing that he apparently regularly indulges in, or are rich > people so in their own world that they don't even realize how normal people > live and that writing something like this comes off as absurd to most > people?

Your comment is more absurd than his spending habits. You are suggesting that he should be socially restrained in one form or the other from spending his hard earned money. From exercising his financial freedom (yes, the ability to spend money without worry is a hard won freedom) because of your own perceptions of class narratives.

To apply your logic to you, do you sacrifice 100% of your disposable income because some children somewhere are starving? Do you go out? Do you drink when you go out? Do you believe that those dollars couldn't save the life of someone dying from AIDS in a developing country? If yes, then why don't _you_ work to give away every single penny you have to that cause? Why do you buy that beer and by doing so condemn that person to death?

Clearly you can see the fallacy over here. Not only are these problems something that can't be solved by throwing money at them - people have tried and failed at that, but there isn't a fixed pie or some upper limit of the gross value that can exist in this world. That Harley he bought paid for engine research in one form and the creation of a supply chain that could be used to build engines that can be adapted to the conditions of rural Zimbabwe.

However, beyond those fallacies lies the idea of freedom I initially talked about. It is important for us to make our own choices. In other words, what Justin does or does not do to solve broader social problems is his and his decision alone. He pays his taxes. You pay yours. What he does or he doesn't do with his dimes is quite simply none of your business.

<comment><USER7> I don't think this answers the quoted question at all. the question isn't about whether the money was earned or not, or even how it should be spent. Rather it's about the doucheyness of writing about it.

<comment><USER6> It answers the core of the questions he raised and linked to: is it wrong for the rich to have luxuries?

> I don't think this answers the quoted question at all. the question isn't > about whether the money was earned or not, or even how it should be spent. > Rather it's about the doucheyness of writing about it.

So you're telling me that someone writing about how they bought a motorcycle and a chopper trip is so offensive that they need to self-censor or be censored?

He has the right to write this piece and you have the right to not read it.

<comment><USER7> You're missing my point. No one is trying to take away anyone's rights, whether to make money, spend it, or write about it.

<comment><USER5> Just jumping in here to back you up jpmoral. In fact, I said in my original comment that I am not trying to tell anyone how to spend money and its these peoples' own lives and they can do what they want, right in the last paragraph. So I hope nobody was offended here.

On the other hand, the first reply above actually answers the question. Notice that, while cloaked as a rebuttal to my initial comment, it was actually a string of defenses as to how the author rationalizes spending money for himself, others, or both, which was precisely what I asked for. Let's take a look at the points made:

\- I earned this money so I can spend it how I want

\- I should not hold back on spending money because it's my personal freedom

\- Do you give away 100% of your money? If not, you are no better than me so who are you to suggest this?

\- We have tried to solve worldwide poverty problems and failed many times, so it won't make a difference if I donate

\- The money I spend on luxurious things is helping society as it creates jobs and trickles down the supply chain, so anything I spend is actually good for the world

\- It's none of your business how I spend my money

Pretty decent answer actually, when it comes down to it. The answer is simply that people come up with a relatively consistent number of ways that they can rationalize themselves spending excessively, and from these rationalizations build their psychological defense. In fact, many of the points in his answer are _exactly the same_ as the ones from the quora threads linked in my edit above.

Now, my next question is whether any of these defenses are valid. My preliminary research indicates that a resounding "no" is the answer, however, I'm going to continue researching and do a separate writeup on this topic, as it's fairly extensive. If anyone from here is interested at all let me know on twitter or something (@jescalan) and I'll link you when it's done. This thread is fairly buried by now though so I assume not.

</comment></comment></comment></comment></comment></comment><comment><USER8> That was the longest humblebrag I ever read! Still, I'm impressed the the comprehensive coverage of Magic.

<comment><USER9> Speaking purely to the professionalism and responsiveness of Magic, yes it's pretty impressive.

</comment></comment><comment><USER10> So, Justin Kan has done well for himself financially, and used Magic for a bit of fun. But don't write Magic off as just a concierge for the rich.

Things in the past month I've used Magic for:

      * Was in a city without Uber; Magic called a taxi to my location (and took care of payment)
      * Got my car re-keyed with a locksmith
      * Called a few restaurants/bars to try to find my lost wallet
      * Called my doctor's office to figure out what the best insurance for me to get was.
      * Delivered custom-drilled 2x4s at 9pm within an hour
      * Removed a bunch of garbage (since we moved and had lots of boxes)
      * Delivered an Apple Express within an hour
      * I said "find me a nice restaurant within half a mile for 3 people available in the next hour", and they found and made me a reservation.
      * Checked what time my parking garage closed (the hours weren't listed online)
      * Called my upcoming hotel and arranged for a package to be delivered to my room.

There's a bunch more I've had them do. It's been amazing for things that aren't _hard_ , but that I don't have time for.

I'm still trying to figure out what to use Magic for, but every time I do, it really is magical.

<comment><USER2> How much are you paying though? The service is undoubtably being heavily subsidized by VC money. This is the classic silicon valley model, a model I love, but there has to be a light at the end of the tunnel.

As noted in the OP, this also reminds me a lot of Exec, and Exec didn't work. In the post-mortem, JK makes a very interesting point:

> if a job request came in and there were no Execs available to run them ... > we sent someone from the office to run the jobs ourselves. Unfortunately, > this gave us a false sense that the quality of service for our customers was > better than it was, as the average competence of our employees was higher > than our average recruitable errand runners. [1]

This is a critical problem that any service business like Magic will run into. Training and quality becomes much harder at scale, and the more you have to pay for "Magicians", the more you have to charge. And if it costs too much money, it isn't "Magical" anymore. Yes, they have advantages over Exec because they can arbitrage less expensive labor overseas, but quality at an efficient price is still going to be a huge issue.

1: [http://justinkan.com/exec-errands-post-mortem](http://justinkan.com/exec- errands-post-mortem)

<comment><USER10> Everything on my list was either free, or would have cost me significantly more than the markup to Uber there and back (and that's not even including the cost of my time).

<comment><USER11> Given the question is here on HN, I think the question is more oriented towards: can this business survive?

If you didn't pay anything for these requests, I don't see how it can.

</comment></comment></comment></comment><comment><USER12> These are the worst examples to demonstrate a service meant for average people.

Magic booked my helicopter ride!

Magic found and bought me a Ducati!

Also look how much back and forth was involved. All of this seems easier doing it yourself.

<comment><USER13> I thought these were great examples. He demonstrated that he was able to solve reasonably challenging, atypical problems with Magic, and that the service brought a lot of value to the table by being thoughtful (knowing to provide KBB reference values without having to be asked, being able to negotiate prices down on behalf of the buyer, having paperwork sent over by a driver etc). It's true that a lot of back and forth was involved, but they facilitated a process which would have taken days of effort on behalf of the buyer (buying the bike) via a few text messages. I personally was both highly amused and very impressed.

</comment></comment><comment><USER14> "Also can you look into getting a helicopter from new haven to jfk"

Concierge service for rich people.

<comment><USER15> I thought the guy was trolling.. until they actually got him a helicopter.

<comment><USER16> I wonder how the people handling the requests deal with the issue of whether inquiries are real or jokes (if customers ask for something extremely unusual or extremely expensive).

<comment><USER17> You have to hook up your credit card and pay for things as they're ordered and before they're delivered.

So the only real risk is the someone uses a stolen credit card when they first sign up.

Between some sensible prudence on Magic's part (limit transaction size for new users) and the banks' own fraud detection systems, the risk seems quite manageable.

<comment><USER16> I guess I'm also wondering whether they have to worry about offending or angering the user by misjudging whether the user is joking -- not just about the financial risk to the company.

<comment><USER18> That would be like joking in the restaurant when you tell them to get you the lobster and champagne. Why would you do that?

</comment></comment></comment></comment></comment></comment><comment><USER19> I don't really understand why magic is that innovative. If you are a guy like Justin Kan you can pay(already have) an assistant to do all of these things for you with a higher degree of accountability and a lower threshold of friction. It was fun wading through Kan's experience spending an average Americans salary simply to test drive a new iphone app, and that illustrates why magic probably won't appeal to the average American.

<comment><USER20> You don't have to pay the high fixed cost of hiring someone fulltime or even part time.

Anyone can pay for single use assistant service. Making that work though is hard.

<comment><USER19> Sure, I think magic is pretty cool. It is just a rather obvious startup idea and exists in various forms already. I don't think it can work for a few reasons:

1\. There are already great sites like amazon, instacart, uber, lyft, eat24, doordash etc. They all have specialties and there is very little friction to use them, therefore there is very little value-add for most mundane things.

2\. > It's completely free to chat with Magic. When you order something, we'll let you know the total price so you can confirm it before you are billed. There are no hidden fees, and tip is included.

There could be a large amount of inquiries that do not result in purchase, however a real person will be looped in. Initially people will troll them or experiment and this will cost money for the company even when no purchase is made.

3\. Doordash, Uber etc have the infrastructure to do this idea, do it better and achieve synergy. There are virtually no barriers to enter this space

4\. Like many things in the sharing/on-demand economy margins are thin.

5\. Naming your company Magic was stupid. Besides Magic the gathering, this word is way to generic. They are not at the top on SEO and I am sure there are many apps with variations of Magic in the app store.

6\. Appeal. They need a lot of customers using the app a lot. I think many people in SV and NYC who are upper-middle - upperclass may use this app, but as I said before they will compete indirectly with many substitute products.

Things competing with Magic

1\. Saving money calling a service directly.

2\. Other concierges a person has for free such as with major credit cards, hotels, or through their professional affiliations. Many premium CC come with these.

3\. Anyone who already has an assistant or employee that works for them directly.

4\. Other companies invading the space (mentioned above)

<comment><USER21> Your whole thing is equivalent of someone walking into a museum, looking at something, then saying out loud to no one in particular... why is this here?

<comment><USER19> I am afraid I don't really understand what you mean. This is a start-up- centric community, discussing a companies viability and challenges seems reasonable. Admittedly my comment wasn't well researched or extremely cohesive, but I think I was able to get across some of the obvious problems the company will face. In my opinion those problems are likely insurmountable long term for magic.

edit: A museum often archives or displays a certain curiosity simply for the sake of preservation, and for its own sake. The market does not keep companies around with the same compunction.

</comment></comment></comment></comment></comment><comment><USER22> I think Magic could be great as a lower-price-finder for people with a more normal income.

ie.

"I found a rental car for $PRICE at SFO tomorrow. Can you find me anything cheaper?"

If Magic finds you a better deal even with their cut (they work their fee into the price they quote you), they get paid & you still save money.

</comment><comment><USER23> If you liked the general theme of this, you might also enjoy: [http://fourhourworkweek.com/2010/05/01/credit-card- concierge...](http://fourhourworkweek.com/2010/05/01/credit-card-concierge/)

<comment><USER24> Much better! Mostly because it wasn't simultaneously rubbing my face in the economic gap between myself and the author.

</comment></comment><comment><USER25> I used Magic to have them find me a moving company that could move me from Mountain View to Palo Alto the next day and they delivered pretty much flawlessly. The movers they found me were skilled, cheaper, and available immediately as opposed to the ones I found myself. All in all, I was pretty impressed with the experience.

</comment><comment><USER26> Meh. That's a lot of input that the author had to provide. It is responding to unstructured/unpredictable messages as well, which takes quite a bit of thinking by the author.

If I had to change a flight, I would guess I could do it faster on Virgin's website rather than through Magic. Same with the helicopter.

<comment><USER27> The flight change was done via Magic because he couldn't use their website on his mobile. Still, you'd think it would be easier to call up a friend.

<comment><USER28> Why not call the airline?

</comment></comment></comment><comment><USER29> That was seriously cool. Many tech companies could learn much from them in terms of customer support. I understand that for these guys _this_ is the product, but still, if you have awesome customer support, it will get you more business.

</comment><comment><USER30> Great article but begs the question, how much is a helicopter ride for 4 from New Haven to JFK?

<comment><USER31> > raises the question

FTFY

<comment><USER32> Outside of the Internet, every single time I have every seen "begs the question" used, it means "raises the question". TV, newspapers, magazines, radio, common speech. Every single time. Therefore, that's what the phrase means.

I have no idea where this American obsession with tying it to a technical term for a fallacy comes from, but I wish it would stop. It's as though every time someone referred to a ram, whether a male sheep or a battering ram, they were informed that "RAM means Random Access Memory. You're using it wrong."

<comment><USER16> Since the sense referring to the fallacy is the original one and the non- fallacy sense is the innovation, your analogy about "ram" isn't ideal.

</comment></comment></comment></comment><comment><USER33> Lots of undue whining in these comments... they can do plain boring stuff too, and a lot of the tasks are free from what I see if there's no purchase involved. Even purchases seem to be a low margin so it might be worth it if you're short on time/effort.

Instead of just proclaiming the future demise of the company why not actually try it out? I'm sure there are plenty of average people getting value out of it. Besides there are also several companies that are successful catering just to the rich. The only way we'll know if this company will work out is by using it and seeing what happens. And if they indeed are unsustainable, might as well get the free help while it's available.</comment>


Build A Terrain Engine For Video Game Development - <AUTHOR> http://www.shamusyoung.com/twentysidedtale/?p=141

<comment><USER2> Notch posted an article a while back on terrain generation in Minecraft. Short, but contains some interesting details. He unfortunately never seemed to get around to writing Part 2, though...

[http://notch.tumblr.com/post/3746989361/terrain- generation-p...](http://notch.tumblr.com/post/3746989361/terrain-generation- part-1)

</comment><comment><USER3> This is quite old but still vaguely impressive to see the visual results - however there is one fatal flaw, every newbie gamedev churns out a terrain engine because they look very good with little technical investment and are easy to implement in any tutorial copied rendering framework... in essence its teaching newbies how to do newbie stuff.

I'm fairly convinced that distance field raytracing is the way to go for terrain rendering - one poly and some extra overhead in the fragment shader (which is not trivial I'll admit) vs. thousands/millions of polys and the same fragment shading pass you use for everything else...

<comment><AUTHOR> >>I'm fairly convinced that distance field raytracing is the way to go for terrain rendering - one poly and some extra overhead in the fragment shader

Could you elaborate a bit more on this technique. Can you use this technique in 3D games when playing real time? I had the impression that all 3D games used meshes for the terrain, do you know of a popular 3D game that uses this technique you mentioned? Finally, do you happen to know a link to a good introduction/tutorial? Thanks!

<comment><USER4> [http://wwwcg.in.tum.de/Research/Publications/TerrainRayCasti...](http://wwwcg.in.tum.de/Research/Publications/TerrainRayCasting) Claims ~30fps @1080p on an Nvida 260GT (that's a reasonable gamer card today)

Seems like a more formal reinvention of this guy's "Quadtree Displacement Mapping" <http://www.drobot.org/> You would be better to check out drobot's slides first. More descriptive, less formal.

<comment><AUTHOR> Thanks!

</comment></comment></comment></comment><comment><USER5> What a great tutorial - explained just enough to leave me desperately wanting to try it myself.

5 years on, but I'd guess it's still relevant to mobile devices. Anyone know if there are better accepted approaches now?

<comment><USER6> Height maps are still the way to go for terrain. The rendering methods themselves have changed but the basic idea remains the same. These days you tend to push big blocks of geometry to the GPU while a decade ago it was common that the terrain would get generated triangle by triangle every frame to minimize the amount of geometry.

<comment><USER7> How would you model concave terrain or terrain with "holes" (like erosion arches or caves)?

<comment><USER8> For what I know that's still a challenge for developers, they most often seem to make two distinct types of area:

-Outdoors, where there are no concavities in the landscape and elevation models are used.

-And indoors, where you use a different type of modeling, last time I checked binary space trees were pretty common.

<comment><USER3> fyi the reason for using a BSP is to get a "cell-portal graph" which allows visibility computations to be trivialised - the benefits of the BSP tree itself for, e.g. rendering with no overdraw are not very valuable. e.g. despite the hype otherwise this was never realised in Quake for zero-overdraw rendering, instead the PVS (based on the cell-portal graph) was used to result in "very little overdraw". This technique continues to be used today in every major game engine (id Tech 4 (maybe 5?), Source, UE3, CryEngine, numerous other proprietary engines).</comment></comment></comment></comment></comment>


Ask HN: How did you transition out of software? - <AUTHOR> I took a week off to do some things around the house when it hit me: Watching paint dry in the real world is more pleasing than doing anything on a computer anymore, and I need to get out of this industry.
It's not that I haven't lost interest in software. In fact, I'm actually more excited about it now than ever before. It's just that I miss interacting with "real" things in the "real" world.
I'm not the type of person that doesn't know how to take breaks. I do take plenty, but the slow shift from computers being a distinct thing from everyday life, to now being a 24/7 inescapable phenomenon, is probably what has me feeling this way.
Years ago you used to be able to interact with a computer on your own terms and walk away and get back to the "real world" without burning out. In recent times the digital world has become so deeply integrated with daily life that I sometimes think I might be happier if I never see a screen again. This combined with the widespread surge in popularity of all computer related fields has me wanting OUT. <comment><USER2> "Watching paint dry in the real world is more pleasing than doing anything on a computer anymore" \--and things like these --will be bore after doing it every day of every month. If you don't hate software field, stick with it. "Years ago you used to be able to interact with a computer on your own terms and walk away" \-- I think this is still possible, just eat your share and don't try to run all the time with ever changing technologies. I concur with some points of 'wallflower' and try reading 'Flow by Mihaly Csikszentmihalyi'. Pls let me know if there is an improvement in your thinking and life (I am interested in understanding the effect. Thank you!)

</comment><comment><USER3> I don't have an answer for you unfortunately, but this is exactly what I have been feeling too and I am interested in the replies.

It's so difficult. I love building products, I get paid very well, and I have the freedom to work remotely, which has allowed me to travel. I know that I would take a significant pay cut and probably that fear alone of being uncomfortable and struggling is what keeps me plugged in. I feel stupid for being so ungrateful and yet at times I think my computer is killing me.

I honestly daydream of a cabin in a forest somewhere. To stop time.

<comment><USER4> I...too have found myself daydreaming that exact same thing...

</comment></comment><comment><USER5> While it won't provide a great deal of people interaction (other than suppliers), take up a hobby that involves anything but computers. When I need a break from computers I go out into my garage and spend 3+ hours rebuilding a piece of furniture or anything that involves saws, drills, sanders, etc. There is something about working with your hands to change your perspective.

</comment><comment><USER6> Try some hobby electronics. The thought processes and approach to designing electronics overlaps somewhat with software development, and you can actually create tangible outputs (even if its as simple as automating your blinds, or your kettle).

</comment><comment><USER7> I understand the want to get out. Digital is pretty overwhelming, it's not like it used to be where it was another tool. It's a complete, whole world that operates within itself anymore. I don't always enjoy that.

Our plan is real estate. My wife and I have started with single family rentals and hope to add enough inventory to sustain ourselves on that. We're both handy and try to live within/slight-under our means right now in order to do something like that successfully. Plus, it's nice to accomplish something (tangible) with your hands.

</comment><comment><USER8> I am thinking about it as well, and my take is developing stock trading systems, so when I walk away from my job, I'll stil have it as a hobby, not to mention the financial rewards...

</comment><comment><USER9> I have the same thinking. I'm good at coding but I know I can't do it forever. In some sense I love it, I love to build thing and the logic. But the day in day out pure rationality and disconnection is getting to me.

My cure plan is to switch to a data scientist job and then use that to get into the product side of things.

</comment><comment><USER10> First, let us be clear. You have to realize that you are incredibly fortunate to be able to work in this industry and produce something of value that business rely on (software). As you have realized, software/technology aren't going anywhere. They are becoming part of everything, even in the real world. Before he revealed himself as a true one percenter, Marc Andreessen wrote a nice essay ([http://a16z.com/2016/08/20/why-software-is-eating-the- world/](http://a16z.com/2016/08/20/why-software-is-eating-the-world/)).

Many years ago, like you, I put all my eggs into one basket. My tech job. There is definitely a diminishing rate of return with putting your all into a job, especially as a coder monkey.

My suggestion, as I've suggested elsewhere (see also [https://news.ycombinator.com/item?id=14684307](https://news.ycombinator.com/item?id=14684307)), is that you need to diversify out of tech. Stop putting so much energy and time into being in the industry and keeping up with the industry.

While the week off to do some things around the house is a good start, I think you need to take "a vacation" more regularly. By that, I mean to approach something new with the attitude that you are on vacation. Vacation is sometimes more about attitude than latitude (but latitude definitely does help).

There is a saying that goes something along the lines of: never let your hobby become your avocation. I hope that you can find a hobby or two that will never (likely) become something that has deadlines or monetary payment attached.

It seems that taking the week off has helped you realize some things about what you want to do. For a lot of people: work doesn't necessarily make you happy but it gives you the means to do something that makes you happy. You don't have to love your job. And you don't have to hate you job. Extremes make good drama but the reality isn't so black and white. Please don't quit your job. At least ask for a sabbatical first (be prepared to imply that you will quit if you don't get one, as this is the only way you can get a sabbatical). And please don't quit the industry without first exploring what possibly you can do the replace the income that supports the lifestyle that you are accustomed to. You will likely find that there isn't really much out there, especially if you like human to computer interaction more than human to human interaction.

I hope you find something that helps you get away from your screen more. Ideally, every single day (like learning how to draw or garden). I believe, the solution for burn out, for someone like you, is to find something else (a hobby or two) to do so you can burn off that ever-present internal desire to do something.

Maybe you have a hidden talent that people can connect with. Put videos on YouTube.

Good luck!

</comment><comment><USER11> > I'm not the type of person that doesn't know how to take breaks

May I respectfully suggest that a longer mental health vacation may be in order? It sounds a bit like burnout.

</comment><comment><USER12> Maybe try a job where you write software to control real world things, eg process control, automation or even some of the IoT sphere.

<comment><USER13> Or transition to a system test role that has embedded software with lots of real world hands on work. Your software experience is relevant. Troubleshooting is the hard and rewarding part in common with software development. For example track testing drivetrain software, flight testing gn&c subsystems, testing robotics controllers. Lots of new testing will be needed with autonomous systems.

</comment></comment><comment><USER14> Maybe try to get a job in management so your dealing with people not just machines.</comment>


Mitnicksecurity.com hacked ? - <AUTHOR> http://antilimit.net/zf05.txt

<comment><USER2> Well I don't know if this is legitimate or not, but if it's not then somebody went through a lot of trouble to fake it..</comment>


What academic research caught the public imagination in 2015 - <AUTHOR> http://www.altmetric.com/top100/2015/ <comment><USER2> Good content.

The layout with the list in the bottom right corner confused me because the article meta-data/abstract appears directly below the arrow for "Top 100 List".

</comment><comment><USER3> CRISPR at #17, surprising.. it has been talk of the town in 2015

<comment><USER4> I guess the attention to it has been spread out over a bunch of different papers.</comment></comment>


Rethinking Backbone.js View Rendering - <AUTHOR> http://elving.me/post/44859632208/rethinking-backbone-js-view-rendering

<comment><USER2> Yes, absolutely pass models directly to your views. That's what they're for, after all -- keeping together a handy bunch of methods that can display your data in ways that are terrifically useful for a view to show:

        account.statusWarning()

        document.listOfCollaborators()

        photo.similar.first().publicUrl()

... and so on. But by all means, don't use Handlebars to do it. Use a templating engine that allows real logic, and rest easier at night. Handlebars is set up as faux-logicless templating -- A wolf in Mustache.js' clothing. Having to add Handlebars helpers just to be allowed to call a "method" (as shown in the blog post) is pretty silly example of forced indirection, no? Much more straightforward with embedded JavaScript:

        {{ model.getFullName() }}

<comment><USER3> I recently started learning EmberJS which forces the user of Handlebars. I thought maybe I was crazy, or maybe I was missing something, but your comment makes me feel a little bit more sane.

Why oh why would you _ever_ use Handlebars over, say, Underscore's templates which allow actually logic? In my (admittedly limited) experience, both choices are equally as simple when writing simple templates, but Handlebars is a colossal pain in the ass when trying to do something significant.

<comment><USER2> The "structured" nature of Handlebars is important if you're using Ember, because it's set up specifically to allow it to parse the interpolations in your templates and determine what attributes you're binding, and so on. But if you're _not_ using Ember, a "colossal pain in the ass" sounds about right.

Do yourself a favor and use _true_ logic-less templates (Mustache, in all of its myriad flavors) if you _really_ believe in that sort of thing. Or make life easy on yourself and use a programming language you already know. Embedded Ruby, embedded JavaScript, embedded PHP (the only kind there is) -- all have the virtue of allowing as much or as little code as you need and want, and allow you to do whatever you need to get the job done.

</comment></comment></comment><comment><USER4> Correct me if I'm wrong, but wouldn't the best place to combine and transform model data be in the model itself?

For trivial cases, this could be implemented in the model's 'defaults' function. (by computing the transformed field value in the function and returning a hash) If you forsee the need to update the value of the dynamic field in response to the client updating the model, you can perform the calculation again in the Model's 'validate' function.

Speaking from experience, logic in templates is convenient for trivial use cases, but can be very difficult to maintain once a project grows.

<comment><USER5> "logic in templates is convenient for trivial use cases, but can be very difficult to maintain once a project grows"

Agreed, my first thought was that there is no way to actively debug the template logic.

</comment></comment><comment><USER6> OP started using Handlebars helpers. there is no "rethinking" happening here and it hardly even pertains to Backbone.

</comment><comment><USER7> At tout.com, we were having timing issues with view rendering, for example if the view has a flash element in it and the $el isn't in the dom yet, you can't operate on the flash element in the render function.

I summarized our new best practice here: [http://tommyhallett.tumblr.com/post/37318050812/avoiding- ren...](http://tommyhallett.tumblr.com/post/37318050812/avoiding-render- timing-issues-in-backbone)

<comment><USER8> I have a lot of canvas drawing going on in my app (charts) and ran into the same issue.

As you point out, appending the element to the DOM before everything is fully rendered can cause all sorts of re-drawing to go on. When that's a concern, I proactively set height/width dimensions on the element before adding it. In cases where that's problematic, I just have the render function of the view either update or remove the explicit height/width styling. That seems to help avoid the worst cases of redrawing/flicker.

<comment><USER7> Cool approach! I'll keep that in mind.

</comment></comment></comment><comment><USER9> Isn't this a bad idea outside of formatting a number as currency?

Also, Why not let JavaScript inject your model data directly into plain vanilla HTML templates? In other words, don't use any template tags at all. These 2 projects are really piquing my interest.

<http://blog.nodejitsu.com/micro-templates-are-dead>

[https://github.com/leonidas/transparency/wiki/Frequently- Ask...](https://github.com/leonidas/transparency/wiki/Frequently-Asked- Questions)

Side benefit is that you can still pre/hybrid render from the server in whatever language you like.

</comment><comment><USER10> I absolutely love Backbone, but the biggest issue for me has been dealing with complex logic in the templates. Most of the time now my render() method just builds the darn elements right in there.

<comment><USER11> as long as it is just a view and not data manipulation, what is wrong with that? You do not have to have template at all. What if your view is list generator with classes? Why having template at all?

<comment><USER10> It can get pretty messy at times.

<comment><USER12> try CoffeeKup: <https://github.com/mauricemach/coffeekup> or Teacup: <http://goodeggs.github.com/teacup/>

<comment><USER13> Try <https://github.com/mgutz/funcd>. It's straight up CoffeeScript functions patterned after Markaby, Erector. Other CoffeeScript templates we tried did funky things with the context and closures didn't work as expected.

And when performance is a concern, you can't beat string interpolation within CoffeeScript heredoc strings.

<comment><USER10> Yep, that's usually how I start my render() method (using triple-quote strings). Then I wrap it in jquery and do dom manipulation on it.

</comment></comment></comment></comment></comment></comment><comment><USER14> I've found it useful to abstract away render and work with before/afterRender hooks instead. I still call render which has a base implementation that calls the template, but instead of passing just the model or the model's JSON, I pass a context object that I can build up to suit my needs. This way every template is dealing with the same thing, and the whole mechanism is extensible.

<https://gist.github.com/ktusznio/5119318>

</comment><comment><USER15> I find it easier to use Handlebars first, then fall back on _.template() when you need logic in your templates. It's easy : <http://brettjonesdev.com/on- templating-in-backbone/></comment>


IPhone apps near billion mark - <AUTHOR> http://scitech.blogs.cnn.com/2009/04/22/iphone-apps-near-1-billion-mark/

<comment><USER2> Not much info in this piece. I'm surprised they didn't even mark any surprise at how fast that number was (or, I should say, will be) reached compared to songs. It took less than one year to reach that number of app downloads when it took several years for songs. That's pretty crazy.

Note also, that the celebration give-away from Apple is pretty nice: <http://www.apple.com/itunes/billion-app-countdown/> A 17" MBP, $10,000 iTMS gift card, a Time Capsule and an iPod Touch...

</comment><comment><USER3> That should read: downloaded apps

</comment><comment><USER4> Wow, imagine all those calculators and fart programs.</comment>


Short clip uploads are deemphasizing story lines for pornographic films - <AUTHOR> http://www.nytimes.com/2009/07/08/business/media/08porn.html?_r=1&src=twr

<comment><USER2> Pornographic films have storylines?

</comment><comment><USER3> And I am so glad about that.</comment>


Canada and European Union agree free-trade deal - <AUTHOR> http://www.bbc.co.uk/news/business-24583745 <comment><AUTHOR> Anyone know how this is affected by NAFTA?

If Europe can trade freely with Canada and Canada can trade freely with the USA, is this arrangement effectively transitive?</comment>


Show HN: Limit your web time and stay focused with self closing browser tabs - <AUTHOR> https://bato.life <comment><USER2> Voting rings aren't allowed here, and we ban sites and accounts that do it.

</comment><comment><AUTHOR> Hey HN, Really excited to share my project here. My idea was to help people to stay focused and get things done. Simply set yourself a time limit for your web session and your tabs will get closed automatically. You can also track your web time and get daily statistics. To make things easier there is a simple cheat sheet.

<comment><USER3> After looking at the website, I don't understand what it is or how I would use it. Maybe an explanation of the technology or some diagrams might help me.

<comment><AUTHOR> Thank you for the feedback!! I never thought about that aspect. You just set the minutes and the website you want to visit and start browing.

My idea was to make it as clean as possible so I don't have space for much explanation. What do you think about starting with something like: "How long you want to browse the web? ... minutes"

<comment><USER3> As clean as possible for who? You've probably devoted many hours to thinking about the tool. I'll probably give your webpage two or three minutes of my time. If you are very very very lucky, someone else might click on a link to your page. That person probably won't spend much time trying to figure out what it is and if they can't their answer to "should I care?" will be null because they won't bother asking that question without knowing what it is.

Which of your ideas is more important, being as clean as possible or people using the tool? To me, the hard thing about good design -- and part of what makes it distinguishable from art -- is that good design is designed for someone other than the designer.

</comment></comment></comment></comment><comment><USER4> Why don't you add a counter?

</comment><comment><USER5> I need this one.

</comment><comment><USER6> well done1 add as my starup page now.

<comment><AUTHOR> Nice to hear that :)</comment></comment>


5 reasons you should wake up before everyone else in the morning - <AUTHOR> https://medium.com/@AuthorSteger/5-reasons-you-should-wake-up-before-everyone-else-in-the-morning-3f36f0901554 <comment><USER2> paywall</comment>