Show HN: An app that improves your vocabulary and feeds poor children - <AUTHOR> https://play.google.com/store/apps/details?id=com.words.first

<comment><USER2> I think it's a little deceptive that none of your screenshots show ads, when this app prominently displays ads.

</comment><comment><USER3> So this is an app-based equivalent of the long-running [http://freerice.com/](http://freerice.com/) site?

<comment><AUTHOR> Freerice is great, funny thing is I came across it a few months only but I loved the concept and had been thinking of doing something similar. Helping people improve their vocabulary 5 words a day is an idea that's years old for me. Hence the app is a combination of both.

</comment></comment><comment><USER4> "part of the money from sponsorship goes to donation"

Can you elaborate on what part, and to whom specifically?

<comment><USER5> Also, many of the reviews are from users without any history.

Apps are already shady, add to this a promise to donate money and you get a down right scam feel from this.

<comment><AUTHOR> Hi there, I hope I have replied to your query with my answer above. Please don't call this a 'scam', as a self taught coder, had to work pretty hard to launch this app. Most of the reviews you see are from friends and family. They know me, trust me and know that what I am doing is not a scam. Nothing shady about it buddy.

<comment><USER6> I understand your defensiveness to his blasting, but it's feedback (although cloaked in antagonistic language). By responding you draw attention to it. I'd ignore and see if others say same thing.

I do agree with him on one thing: "feed poor children" can send a negative message. For him its scammy, for me it's "ugh another poorly thought through tom's knock off?" Because feeding poor children isn't at all connected to first world people learning new vocab.

Unless you really believe in feeding poor children and you have a good story to back it up and you can quickly communicate that, something that would make more sense is something related to literacy. "Learn new vocab and donate books to poor children" sounds a lot better.

</comment></comment></comment></comment><comment><USER7> Nice idea, I like that "part of the money from sponsorship goes to donation".

But, the ads can be done better, maybe try to position them at the bottom of the screen, now they are right below the description for the word (where the descriptions vary in length).

Also be sure to have an app icon in a higher resolution. This one doesn't look good on 1080p screens.

<comment><AUTHOR> Sure will definitely improve the app icon :). Ads hopefully will removed in all if I am able to get sponsorships. Then the page showing support us will show the sponsored message

</comment></comment><comment><USER8> Nice idea. I'll give it s spin once the permissions are dialed back a bit.

Seems like a nice compliment to a daily visit to Free Rice (a habit I need to get back into). Daily learning is good. Charity is good. What's not to like?

<comment><USER9> Yeah, the list of permissions asked seems a bit excessive, definitely kept me from installing the app.

</comment></comment><comment><USER10> I'd have more faith in an app that claims it can teach me new words, if "coffee" was spelled correctly when I use it! ("...help us buy a coffe")

<comment><AUTHOR> Apologies for that... really really silly mistake. Corrected. Thanks for pointing out.

</comment></comment><comment><USER11> why does it need all those permissions?

<comment><AUTHOR> Sorry about that, will remove them in the next update for sure :)

<comment><USER12> Please, let us know when you push the update. It's terrible requiring so much permissions..

<comment><AUTHOR> Sure, but can anybody tell me how can I inform you guys about the update? Shall I post the app again or anything else? Pretty new here.

</comment></comment></comment></comment><comment><AUTHOR> Hey guys, the app has been updated to remove the permissions.

</comment><comment><USER13> Is there a similar app for japanese language?

<comment><AUTHOR> Are you looking for Japanese translations or an app that teaches you Japanese words?

<comment><USER13> App that teaches me Japanese words, but in small portions :)

<comment><USER14> If there's a staff-made course for it on Memrise, I'd recommend that. I'm using the Chinese one, and it's perfect for small chunks and avoiding being overloaded. The charity aspect is probably better dealt with by simply donating directly, ads make essentially no money in comparison to consulting or even minimum wage.</comment></comment></comment></comment>


Exploiting ELF Expansion Variables - <AUTHOR> http://backtrace.io/blog/blog/2016/06/29/exploiting-elf-expansion-variables/ <comment><USER2> > In IllumOS non-privileged users are allowed to create hard links of setuid > executables which is necessary in order for exploitation of this > vulnerability to achieve privileged code execution.

> NOTE: Various Linux distributions have incorporated patches that restrict > symbolic link behavior, preventing security vulnerabilities such as the one > we are about to demonstrate.

Linux distributions also restrict hardlink behavior, which addresses this issue. This seems like the key point. In current Linux, by default, you can't create a hardlink to someone else's file, setuid or otherwise.

<comment><USER3> And also the Linux kernel has protections against unsafe symlinks too[1].

[1]: [http://danwalsh.livejournal.com/64493.html](http://danwalsh.livejournal.com/64493.html)

</comment></comment><comment><USER4> Hm, might the changes to Android's dynamic linking behavior described here [0] also be related to similar actual or possible attack vectors?

[0] [http://android-developers.blogspot.de/2016/06/android- change...](http://android-developers.blogspot.de/2016/06/android-changes-for- ndk-developers.html)

</comment><comment><USER5> For those interested in CTFs techniques or an intro to system exploitation, this is a good read.</comment>


Ask HN: Time Taken to Release a Feature - <AUTHOR> How much time does it take for you to launch an end to end feature?
My current rule of thumb is - 8 to 10 weeks in a startup - 6 to 8 months in FAANG
Assumptions - Internet/App based consumer product - End to end feature & not product improvements <comment><USER2> The first question is what do you constitute as a feature?

Surely the scope of work is going to vary massively that is would make it really hard to answer your question accurately.

Do you have an example of what you consider a feature and how long it has taken you?

In my case, I work in online mapping, and developing a feature which allows people to convert between projected coordinate systems when they download data took about 5 days to complete and sat in dev and uat whilst the entire project was being worked on.

</comment><comment><USER3> End to end meaning?

Solo, I've built a logistic management & tracking system in a day, from scratch. It was ugly and unstable, but never dropped the ball. I only worked that fast because we had more customers than was manageable manually. Never replicated that feat.

As a team of 5, the most ambitious was a chat feature done in 2 months. Built on a paid platform, of course, but a lot of it had to be custom integrated, like UI, offline storage, and multiple users managing a company account.

</comment><comment><USER4> It really depends....

Last night one of my customers mentioned they wanted something new on the site. I'm pushing it live tonight.

Truly it's dependent on what you mean by features, project complexity, team, etc.

</comment><comment><USER5> Wouldn't this be so dependent on the feature, product, team and company that any answer would be useless because it's too specific? Or am I missing something?

</comment><comment><USER6> Anywhere from a day to a year.

The proverbial length of a piece of string.

</comment><comment><USER7> My team just launched a new feature end to end in 8 weeks + 2 weeks of A/B testing

</comment><comment><USER8> 1hr to 1 week. Doesn't matter if it's a startup or an enterprise.

</comment><comment><USER9> Either two weeks or six weeks, for small and large batches.</comment>


LibreOffice announces new "MUFFIN" user interface concept - <AUTHOR> https://blog.documentfoundation.org/blog/2016/12/21/the-document-foundation-announces-the-muffin-a-new-tasty-user-interface-concept-for-libreoffice/ <comment><USER2> Sure seems like LibreOffice would be better off investing in stability than in this sort of thing. Honestly, one of the things I like about LibreOffice is that the UI is fairly traditional. I'm all for innovation, but in my opinion most of the changes in desktop UI since about 2000 have been questionable change masquerading as innovation. Maybe I'm just old.

<comment><AUTHOR> 1) As the blog post says, it's optional, so if you like the traditional interface, you can still use it.

2) Regarding "investing in", it's a free and open source community-driven project. The community decides what to work on. If you think the community should "invest" in something else, please feel free to join the community :-)

<comment><USER2> 1\. It's optional, but its existence increases the testing burden for all other parts of the application, because now there are more options to test. See here:

[https://mail.gnome.org/archives/desktop-devel- list/2002-Apri...](https://mail.gnome.org/archives/desktop-devel- list/2002-April/msg00623.html)

2\. Communities, like individuals, sometimes make mistakes. It's OK to voice ones opinion that a mistake is a mistake. And they are free to ignore me if they disagree.</comment></comment></comment>


Error handling in Node.js and Express - <AUTHOR> http://www.itamarweiss.com/post/57962670227/error-handling-in-node-js-express

<comment><USER2> Add a route that does something like

      throw new Error('Uh oh')

Error handling done right will include a way to catch the error. With current versions of Node.js that means to use domains.

And then you want to make sure that a crash will not cause other concurrent connections to get abruptly disconnected.

I have a few things in place that I use to get zero-downtime deploys and crash handling.

[https://github.com/mathrawka/express-graceful- exit](https://github.com/mathrawka/express-graceful-exit)

[https://github.com/mathrawka/express-domain- errors](https://github.com/mathrawka/express-domain-errors)

[https://github.com/superjoe30/naught](https://github.com/superjoe30/naught)

<comment><AUTHOR> Sounds good. I'll have a look.

</comment></comment><comment><USER3> That this article can claim to be error handling "done right" is a great illustration of the immaturity of the node ecosystem.

Stop and ponder that express can't even return a 500 on exception without a lot of customization. (Which this example doesn't even address.)

<comment><USER4> You don't seem to know a lot about node. The whole philosophy is "small modules that do one thing well and get out of the way for the rest". If what you like are big frameworks that handle these kinds of things for you, e.g. Rails, Grails, Django ...

Don't pick on Node for not doing something it was not created to do, and will never do.

<comment><USER5> Node was created to not handle error conditions? How is that defensible in a HTTP server?

<comment><USER6> Check [https://news.ycombinator.com/item?id=6211284](https://news.ycombinator.com/item?id=6211284) The design philosophy is pretty much the same as RoR's stack.

The idea in Node is that modules are simple, replaceable and composable: Express is a simple facade to Node's HTTP server (wrapping raw HTTP requests and providing a middleware framework) on which you can plug in new middleware (again, small modules) which do a single job well.

You can build full frameworks out of this system without the hurdle of these frameworks being monsters: just plug in the appropriate middleware for each relevant route and you're done (and, thanks to Connect/Express this plugin will work in every framework using Express as a building block).

There's nothing wrong with it, and it comes with many advantages.

So, to answer your question: yes. Node is not responsible of handling error conditions because that's not Node's job: it's part of userland. Node is just a simple IO engine, not a web server!

The full stack looks like this (similar to RoR's):

Node (Async IO) -> Express (Request facade) -> Connect (Middleware handling) -> Middleware and/or Framework -> Your app.

<comment><USER3> That argument is a cop out, because I can apply it to lots of other things that node _does_ do.

Why is the "string" implementation part of Node, and not something that everybody can choose to implement with their own microlibrary? Because strings are something that need to pass between modules all the time, and interoperability dictates that we should all pass the same kind of strings.

Likewise, exceptions flow _between_ modules. They are necessarily part of the interface that other people's code will expose to yours. That's why Exception is part of Node, and that's why it's Node's responsibility to give us constructs to deal with those exceptions cleanly. It _tries_ to do so, with try/catch/finally (which only works on purely synchronous code), and Domains (which can work with asynchronous code, but only if all your dependencies are careful to also use Domains to clean up their references, which most don't).

</comment></comment></comment></comment></comment><comment><USER4> Nothing new under the sun. The 404 trick is useful but usually it makes the code more readable to handle errors in your request handlers. That way you don't have to jump between the error handler and the request handler.

</comment><comment><USER7> Seems rather nice :) Thanks</comment>


Why is truth() faster than bool() in Python? - <AUTHOR> http://tellaparteng.tumblr.com/post/57005427993/why-is-truth-faster-than-bool-part-i

<comment><USER2> Uncommon to see such a linkbaitish title for a programming post. The reason truth() (from operator) is faster than bool() is that

* bool() takes one _optional_ and _named_ argument, and

* truth() takes one argument.

</comment><comment><USER3> For those wondering what the hell truth() is, I think they're talking about this phenomenon:

      python -m timeit "if bool(1): x = 1"
      1000000 loops, best of 3: 0.187 usec per loop

      python -m timeit "if 1: x = 1"
      10000000 loops, best of 3: 0.0266 usec per loop

<comment><USER2> truth() is a function defined in the operator module which does _kind of_ the same thing as bool().

</comment></comment><comment><USER4> This article doesn't actually answer the question posed by the title, FYI.</comment>


Help me improve my CV - <AUTHOR>

I want to do an internship this summer and I have some doubts writing my CV. In Technical Experience & Side Projects section I have most of my doubts.
I don't have experience working on a open source project, I'm right now at the beginning of the two listed projects, but I don't have enough milestones to publish them. I don't know if I should even list them. I could talk about them, but implementation wise...it's almost nothing done.
The most experience I have is in Java, having some mock projects that I finished(Polynomials calculator, Bank application with a DB, Point of sale simulation, Product management app, Bank application w/o db - just to learn how to properly use Design by Contracts - mostly university assignments but with the extra mile.), some experience in C, mostly for school(various sorting algorithms, some cli book management app to learn how to implement single/double linked lists), some Python(mostly to learn the language, some scripts and now learning some Twisted, which I need for one of the side project) and the rest are assignments for school, some of which I find them very insteresting(Haskell, Lisp) but didn't yet managed to study them more closely.
Having read your comments on this submission https://news.ycombinator.com/item?id=7854029, I thought I could use your honest (especially, cruel truth) opinion and advise for improving my CV. The more honest, concise and true (even if it's cruel), the better. I really want to find a place that gives me opportunities to grow in my passion and want to be good at it, not just to earn some money.
My CV can be found here:
https://www.wetransfer.com/downloads/7f548d7fa1f599e290f0d033655e948320140621064314/8a3e97ed8c7279926a1b4721eb498f8420140621064314/26a136 <comment><USER2> Just going to throw everything out as word vomit, remember that this is a work of iteration. There's tons of advice out there about how to write a resume, but at the end it's a very personal document to write.

Some of my per section recommendations: Technical Experience Remove side projects from the header, it's not necessary Remove KLOCS, instead opt to add descriptions of your experience. Built something you're proud of? talk about it!

Your experience should speak at your capabilities, saying you know linux and git adds nothing but something like "Built a linux console application that utilizes git to achieve *" has more value.

Education: Trim trim trim, anything before college doesn't matter, unless you have something super awesome to put in. At your level of experience, maybe list some relevant courses or a current GPA if it's really high

Languages: not relevant to your professional experience, so it doesn't belong in your resume

Professional skills: I'm mostly against giving a laundry list as these are mostly shallow. "Responsible"? "Analytic ability" what do they actually mean to the person reading your resume? You have about 1 paragraph worth of space to put something more personal in your resume and those words can be part of that: "A Passionate team-worker with great attention to detail with X amount of experience" Note that even that sounds kind of impersonal.

Other: Doesn't belong on your resume

References: Ditto, it's obvious that you have references upon request, why waste space on your resume?

Some general recommendations: The text on your resume should speak about your RELEVANT professional experience and nothing else. The rest can be represented in a cover letter/interview

Anything more than 1 page is tiresome to read and messy to handle. Don't forget that this is going to pass several hands (hopefully)

Your resume is usually the only thing representing you between a stack of dozens more, it should be informative and interesting enough to get noticed.

Always tailor your resume to the job - Are you applying to a position that requires Java and Linux experience? Show that off and remove your prolog/lisp/asm experience.

Feel free to re-draft for more specifics

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

Please check the updated version 2, linked in my response to S4M's comment.

</comment></comment><comment><USER3> Here is how I would rewrite your cv:

1\. Your name: add a title below (Junior programmer) and a short summary of yourself (for example Enthusiastic CS graduate with experience in Java, C, Common Lisp and Assembly).

2\. Section "Technical experience and side projects". Instead of listing the programming languages you know, list the projects you have done, with the technology used. For example: "Tor isolation proxy: [High level description everybody can understand, not sure if what I gonna say is right, or even possible:] Transformed a wifi router into a Tor relay. Technology involved: VDHL and C."

You mention that you have experience with HTML. Do you have a webpage online that you can show? Also, add a link to the github repo of your project if you have it. I am not sure your prospective employers will bother to click on them, but they will if they find the description of your project interesting.

3\. section Education. Drop everything below University, because frankly, nobody cares. Instead, write the date of your entrance at your university, the year of expected graduation, and a description of what you are learning there.

4\. Languages: unlike what mataniko says, I'd recommend you to leave it there, but just write: English: Fluent, German: mother tongue - it's especially relevant if you want to apply in companies in Germany. Out of interest, why don't you mention Romanian?

4\. Professional skills. Drop it. Nobody cares that you have "tact and diplomacy", that's something they will find out if they interview you. You mention "self employed". In English, it means that you are your own employer, i.e you have your own company that makes some money. I am not sure that's what you meant, maybe what you meant was more like "I can work by myself".

5\. I would suggest to remove the "others" section. You mention your interest in cryptography and open source, which is good, but must be visible in your side project. If you have contributed to an open source project, mention it in the section "technical experience and side projects", and if you haven't you will look bad if someone asks you in an interview "You are saying on your cv that you are fond of FLOSS. Have you contributed to some open source project?". And same for crypto.

6\. Drop the "references" section as well. They will ask you if they need them. Meanwhile it's just eating place on your cv.

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

version 2.0:

[https://www.wetransfer.com/downloads/67bb311d67f76dcd74318b7...](https://www.wetransfer.com/downloads/67bb311d67f76dcd74318b7671bf4d9220140623052441/8c25322021a417099b3a0dd1a43402fc20140623052441/74b6f0)

1\. Added your suggestion. Not sure if the format(can only write capital letters because it's a subtitle) is the right one.

2\. Considered mataniko's suggestion and removed "side projects" part from the header.

I listed projects that I've done(they are mostly university assignments with the extra mile). I have limited experience with HTML, had to do an assignment involving PHP and I'm really ashamed of the result. It will do more wrong than good.

All the listed projects have a private repository on Bitbucket. Currently I'm not comfortable making them public, but after my finals I will take some time polishing them for publishing.

I'm not sure if I worded correctly the descriptions of the projects(particularly "build with Ant...etc...managed with Git" part). I want to show that even if I developed them alone, I am rigorous using source code management and automated build software/systems(even if nobody asked me to). I'm not sure if I achieved this purpose.

I swapped "Technologies" part with "Familiar with". I'm not sure if it's the right thing. I'm not particular interested in getting a internship only in Java or C. I would like to broaden my options. I like Python, ASM, VHDL, Common Lisp, Prolog and others even if I've only done trivial things in them. I'm more like "the right tool for the job" guy, but also at the right time(i.e. I avoid PHP as much as possible because it breeds a wrong way of doing things and I'm too inexperienced to avoid common mistakes - later, having more experience maybe I'll reconsider my choice).

Could you suggest a way of finding the companies that appreciate the spirit of learning new things, considers applicants even if they don't have enough experience yet?

3\. Dropped everything below university(details in 4.). Added expected graduation year. I don't know if describing what I'm learning here adds any value(also that would take more space and it will pass the 1 page suggestion from mataniko). Fairly standard - Algorithms, Data structures, OOP, Operating systems, functional programming, image processing, system theory, hardware/logical design, embedded systems(mips,avr), Computer architecture, etc...

4\. My mother tongue is German, but I'm born and live in Romania. Previously listed education has shown that I studied at a German school. Now studying in English and most of my relatives living in Germany and not speaking daily anymore, my German is a little rusty, so I changed it to "fluent"(managing expectations). I added Romanian though being a Romanian citizen is self- explanatory.

4'. Removed professional skills.

5\. Removed others.

6\. Removed references.

You may notice I didn't took every single suggestion into consideration and I hope I didn't insulted you having done that. My apologies if it may seem ungrateful. I really appreciate taking your time writing your suggestions down. Maybe I'm wrong and need more persuading:)

<comment><USER2> Definitely an improvement but at the end, as someone who reviewed countless resumes I find it shallow.

By the time i finish reading about your experience I should want to know more. Or at least know enough to take you into consideration.

Since you don't have the traditional "worked at X for Y time and made Z" experience you really want to tell a story here.

For example, the first two items have a lot of redundancy and can be combined and speak about how you built a bank application using all of those technologies. If you can put a link to github repositories of these projects thats even better.

Some of the stuff listed is very basic, and thats ok since you don't have the experience yet. But why even put it? Use those precious lines to expand on meaningful stuff you've done and proud to show off. The line about Tor Isolation Proxy is great, the one about CLI Books management is tiresome.

Is there a particular internship you're targeting? Do you have a side project you can work on in case that doesn't work out, or as additional experience towards a related internship?</comment></comment></comment>


Can D.I.Y. Supplant the First-Person Shooter? - <AUTHOR> http://www.nytimes.com/2009/11/15/magazine/15videogames-t.html?hpw=&pagewanted=all <comment><USER2> The article references "Passage" a game written by Jason Rohrer. If you haven't played it, you should - it's extremely hard to describe, but in short, it is a sort of simulation of life. Not like the Sims - it's about 300 seconds. At the end, you die.

<http://hcsoftware.sourceforge.net/passage/>

Extremely unsettling to me, a very "momento mori" moment. Love the concept and execution though.

</comment><comment><USER3> No...

But it can certainly find a place next to it. (A small place, think _Primer_ vs. _Transformers 2: Revenge of The Fallen_.) There will always be a place for indie art, just as there will always be a much larger place for _Dancing With the Stars_ or endless _Pirates of The Caribbean_ sequels (which I enjoy, btw).

</comment><comment><USER4> This is news? Small teams have been making games since back when that was the norm for the industry.

The juggernaut industrial game is the (comparatively) new phenomenon. The first games _were_ what we'd today judge as indie, and it has always been possible to find that sort of game.

<comment><USER5> I think the last crop of indie games represents a significant point in time for the industry, though, and is worth writing about.

Yes there were always people making games for fun, but this is the first time a critical mass of people are feeling hung over from the industrial games. The industry itself feels it, and is taking notice.

Also a new phenomenon is that scale of the market has allowed these indie games to be financial viable as a primary income stream; making a game in a 2-3 person team or solo can be more than a hobby for the first time since the very earliest consoles.

</comment></comment><comment><USER6> I wish the article touched on Xbox's Community (now Indie) games. I spend more time on $1 games like I Made a Game With Zombies, Jump!, Johnny Platform's Biscuit Romp and Miner Dig Deeper than I do on XBLA games like Trials HD and Geometry Wars.

<comment><USER7> Can I distribute games built on SDL there? or do i have to drink the msft coolaid?

<comment><USER6> Nah, you do have to drink the koolaid to an extent: C# w/XNA framework, but you can use the free VC# Express. Only costs would be $99/yr to publish to Xbox Indie; publishing to windows is free. There's an extensive community that's churning out some impressive games. [Along with a plethora of massage and drinking games]

</comment></comment></comment><comment><USER8> Who thought the industrialization of gaming companies would lead to bland games? I for one am shocked, SHOCKED!

</comment><comment><USER9> not exactly, but fps et al are certainly a shrinking part of a growing pie.</comment>


Hierarchical Queries in MySQL (Function substitute for CONNECT BY) - <AUTHOR> http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/

<comment><USER2> This is a bad way to store hierarchical data in MySQL: the performance is terrible due to the number of queries that have to be issued. The nested set model (<http://en.wikipedia.org/wiki/Nested_set_model>) is a better solution.

<comment><USER3> Sure, especially if you nest the sets using a datatype indexable with an R-Tree index: [http://explainextended.com/2009/09/29/adjacency-list-vs- nest...](http://explainextended.com/2009/09/29/adjacency-list-vs-nested-sets- mysql/)

However, nested sets is still very expensive to update which may be a deciding factor if your hierarchy is subject to frequent change (like, a folder-like structure with the folders being moved here and there) and you don't need to query for "all descendants" often.</comment></comment>


Pycsell - cheap photo printing and storage - <AUTHOR> http://www.pycsell.com/home

<comment><USER2> Seems good. Has anyone tried to order photos?</comment>


The Bestest Privacy Policy Ever. - <AUTHOR> http://iheartpy.com/privacy.txt

<comment><AUTHOR> Brings a smile to your face! :)

</comment><comment><USER2> nice privacy policy, easy to understand :-)</comment>


Translating MDN into French - <AUTHOR> https://medium.com/@Sphinx/mdn-javascript-in-french-b69335165746

<comment><USER2> This is such a French thing to do.

<comment><USER3> This is such an American comment to make</comment></comment>


Ask HN: Are there any sites that help you practice reading obfuscated code? - <AUTHOR>

I'm taking a java programming class this semester. Our quizzes and tests usually revolve around a chunk of code that is hard to understand, uses lots of nested loops, broken switch statements, etc.
The professor doesn't provide any material to prepare for the tests and the too easy to prepare for the test.
I'm looking for some sort of resource to practice reading hard to understand code, particularly java. Does HN have any suggestions?
Books/websites/videos/etc are all welcome.
EDIT:: The examples below are a little too hard. I'm looking for something that is entry level stuff. <comment><USER2> It doesn't sound like you're looking for "obfuscated" code, which is what the links below show. But rather real code that's more complicated than slide examples.

I would look for random code people wrote, for example on github:

[https://github.com/search?utf8=%E2%9C%93&q=sort&repo...](https://github.com/search?utf8=%E2%9C%93&q=sort&repo=&langOverride=&start_value=1&type=Code&language=Java)

And then just look at the code and try to understand how it works. This result for example seems to implement basic functions and is well commented:

[https://github.com/erlide/erlide/blob/6b836bcb0770d23c4471f4...](https://github.com/erlide/erlide/blob/6b836bcb0770d23c4471f490bea50b9141d1909e/org.erlide.core/src/org/erlide/core/common/Util.java)

Hope this helps

</comment><comment><USER3> <http://www.ioccc.org/> is one such site, but, for C

perlmonks: <http://www.perlmonks.org/?node=Obfuscated%20Code>

You could play with eyedrops: [http://search.cpan.org/dist/Acme- EyeDrops/lib/Acme/EyeDrops....](http://search.cpan.org/dist/Acme- EyeDrops/lib/Acme/EyeDrops.pm)

</comment><comment><USER4> <http://www.ioccc.org/>

I'm not responsible for damage to your mind.

</comment><comment><USER5> Use a pencil and paper. Make a column for each variable. As the values change, record the new value in a new row. That will get you through the test questions as long as you read the code correctly.

Think about what could cause loops to behave in unexpected ways. Consider off- by-one loop errors like >= where > was needed and vice versa, or a loop condition being assignment (x=y where y is nonzero, so it resolves to true) instead of testing for equality (x == y). Write code for long enough and you will make these errors yourself and debug them so you will become very good at recognizing them. Also be aware of the break, continue, return, and finally keywords.</comment>


Linux apps that run anywhere - <AUTHOR> http://appimage.org/ <comment><USER2> AppFS ( [http://appfs.rkeene.org/](http://appfs.rkeene.org/) ) solves a similar problem and several other related problems: updates, dependencies, configuration files, transport mechanism, package signatures

</comment><comment><USER3> If this could develop some traction it would make things a lot easier on non- technical users.</comment>


List of companies that are hiring or are currently in a hiring freeze - <AUTHOR> https://airtable.com/embed/shrpj2r4Kjc4YoMu4/tbl8m95GiuWehnIiT?blocks=hide <comment><USER2> Source: [https://candor.co/hiring-freezes/](https://candor.co/hiring-freezes/)

</comment><comment><USER3> "User generated list, not moderated by Candor beyond merging duplicate entries and removing abusive language. This list does not reflect Candor's views and opinions and we do not guarantee or imply that it's accurate."

you might as well roll a dice instead of consulting this list. accuracy will be equally random.

</comment><comment><USER4> I expect that tomorrow's "Who's Hiring" story will have a strange vibe compared to past months.

</comment><comment><USER5> Bank of America is hiring. They hired 2000 people this month.</comment>


Bald Eagle Filmed Swimming - <AUTHOR> https://www.npr.org/2019/06/14/732843218/bald-eagle-caught-elegantly-swimming <comment><USER2> Now I see what Chomsky's always on about with his example of "instinctively, eagles that fly, swim".

I thought it was just a sentence specifically made to be nonsensical, but no, they actually _do_ swim.

(See for example: [http://annarborchronicle.com/wp- content/uploads/2013/07/A2Ch...](http://annarborchronicle.com/wp- content/uploads/2013/07/A2Chron-Chomsky-FullTranscript.pdf))

<comment><USER3> Though the linguistic tangent was off topic for the OP, I'm glad you shared it, it was a really interesting tangent!

"... All of that isn't really as significant as what's more difficult to think about, but much more important: What's the fundamental design of language. If you want to understand what the function of the visual system is, you can't just say "I use it to watch television." That's not biology. You want to understand the visual system, you have to look into its nature. See what it does. Investigate it. It's a scientific problem. And then you find things about the visual system that are surprising. It's the same with language. Its' not enough to say "Yeah, I use it to talk to my friends." If you want to understand something about it, you have to look into its nature. And you can't do that in a casual conversation. THat requires investigation, like any other hard topic. And when you investigate it, you find things like I just mentioned, that linear order just isn't part of the way language is used. You can see it in simple cases. Take the example I used last night, take this sentence: "Eagles that fly swim." Ok. And put an adverb in front of it: ..."

</comment></comment><comment><USER4> A few years ago we were kayaking in Woods Lake (Arizona) and a naturalist told us that Eagle parents had just left the area, leaving behind their juvenile baby. This is normal behavior after parents have taught their offspring how to function. Anyway, the very young Eagle kept trying to catch a fish for about an hour until it snagged a small trout caught on just one talon. I quickly flew to shore looking like it was going to drop the fish and it looked like it eventually ate the entire fish. The same naturalist later told us that this initial 'being on their own' period is a bit dangerous for these young Eagles because they must catch sufficient food all on their own. Tough Eagle parent love.

EDIT: off topic, but in San Diego while diving I have watched Cormorants "flying underwater" \- very impressive just how fast they go. As someone else here said, 'flying in a denser medium.'

</comment><comment><USER5> We see this all the time in Tofino.

Eagles try to catch things in the inlet, where it's shallow, and often have to swim their way out if they miss.

</comment><comment><USER6> There are two rescued bald eagles at the SF zoo which live on an island--you can sometimes see them swim around their locale.

Edit: I left out the important part—their wings are broken so they are flightless, hence the swimming.

</comment><comment><USER7> I believe this is known as the 'chicken breast stroke' in ornithoculture.

But, seriously. My grandfather used to take my brother and I every summer to see the bald eagles near their house.

Never really appreciated just how special that was. They are quite majestic and their nests are huge.

This is one thing I'm glad no one listened to Ben Franklin about.

</comment><comment><USER8> Is it swimming or flying in a denser medium?

<comment><USER9> Technically, I'd say it's flying if the main upward force is lift, and swimming if the main upward force is buoyancy.

And while it's often pointed out that sharks have negative buoyancy and have to sink or swim, they're only slightly denser than water, and some species are positively buoyant: [https://www.sciencedaily.com/releases/2015/06/150619103518.h...](https://www.sciencedaily.com/releases/2015/06/150619103518.htm)

</comment></comment><comment><USER10> I went fishing with bald eagles once on the beach. I was there early in the morning. There were tons of eagles on the beach. One by one they'd wade out into the water and wait. Then they'd dunk their head down and pull out a fish and fly away until there was only one left by the time i went home that just didn't have any luck.

</comment><comment><USER11> I wonder if other eagles ever do this? Maybe a distant Golden Eagle swimming in a Scottish loch might be mistaken for a large aquatic creature of some kind - Nessie? Birds are dinosaurs, after all..

<comment><USER12> I imagine all/most eagles that feed on fish must have to swim at some points in time, so probably develop a fairly decent swimming technique.

As for nessie, I'm not sure there are any outstanding 'unexplained' photos (the 'surgeon's photo' is much like the famous bigfoot film - it's been admitted to being a hoax, but 'true believers' insist that that's just the person being coerced into a cover up)

<comment><USER13> They make the same moves as flying.

<comment><USER14> Because of the low body density needed for flight, I suspect that all flighted birds can swim to one degree or another. It is at least trivial for them to float quite high in the water. And once you're doing that, you've got both legs and wings that should be able to provide some manner of propulsion.

</comment></comment></comment></comment><comment><USER15> Clams got legs!

[http://albanydish.blogspot.com/2013/09/clams-got- legs.html](http://albanydish.blogspot.com/2013/09/clams-got-legs.html)

</comment><comment><USER16> I wonder what kind of creatures we would get if some group of eagles evolved into sea creatures over the years

</comment><comment><USER17> Funny... Bald Eagle uses the butterfly stroke

</comment><comment><USER18> Can a submarine... fly?

</comment><comment><USER19> If they're too far from land, I guess they'll drown.

</comment><comment><USER20> Since I saw a female dog performing pelvic thrusts on a female cat for no apparent reason, I'm a lot less skeptic of this kind of headlines.

<comment><USER21> It is an expression of dominance. Male and female dogs both do it.

<comment><USER20> I know. It was a joke.</comment></comment></comment>


2 Years of monitoring sensitive information pastebin dumps - @dumpmon (2015) - <AUTHOR> http://jordan-wright.com/blog/2015/05/26/two-years-of-at-dumpmon/ <comment><USER2> That's a pretty easy path to find targets, full details tweeted to you daily. And probably high rate of success, as somebody already felt the need to pastebin it.

I worry about unprotected S3 buckets too. There's probably a Twitter bot coming soon for those: [https://community.rapid7.com/community/infosec/blog/2013/03/...](https://community.rapid7.com/community/infosec/blog/2013/03/27/1951-open-s3-buckets)

</comment><comment><USER3> If you are interested to run your own pastebin (or alike) analysis, AIL is a "modular framework to analyse potential information leaks from unstructured data sources like pastes from pastebin or similar services or unstructured data streams." [https://github.com/CIRCL/AIL- framework](https://github.com/CIRCL/AIL-framework)

<comment><USER4> Whoa that looks awesome. Nice work!

</comment></comment><comment><USER5> This seems like a great idea, but taking a look at what the Twitter bot is posting shows it tweets a lot of false positives, such as hashes of files (which it presumably thinks might be password hashes)

</comment><comment><USER4> Hi everyone, author of the post here. Happy to answer any questions.

</comment><comment><USER6> I am also Time Magazine's 2006 Person Of The Year.

<comment><USER6> Hey, it's true! I thought it was cute.</comment></comment>


What Colour are your bits? - <AUTHOR> http://ansuz.sooke.bc.ca/lawpoli/colour/2004061001.php <comment><USER2> "It's not even correct to say "the probability of this being from a random generator is very low" because that's not true - it either was or was not randomly generated, that's not open to probability."

This isn't true when you take a Bayesian approach, where probability is a statement about your knowledge rather than reality. In fact, it seems like the whole issue could be greatly simplified/rationalized through application of Bayesian ideas - "Color" then being determined probabilistically (in the Bayesian knowledge sense) rather than absolutely.

Interesting article though.

<comment><USER3> Perphaps I'm misreading you, but isn't that directly against the main gist of the article. Historical events happened in a certain manner, there is no probability involved. It's all 1.

Presented with partially unknowns about historical events one can use different approaches to decide how to proceed, but when talking about law, most things revolve specifically not about what's probable, but what actually happened. There is no "probable". Isn't that the main point of the article?

It's quite easy, from a law perspective, to decide what to do when no sure about what actually happened: let the accused go.

For most of us, though, this is not the type of answer we're after, and that's one of the things the article is trying to make us understand: our perspectives are different.

Neither perspective is inherently inferiour.

</comment></comment><comment><USER4> This article is an oldy but goody about intellectual property law and how programmers, et al, routinely fail to understand it because of a paradigmatic difference in how they view data versus how other people (and the law) views information.

<comment><USER5> The CS perspective is correct though. IP law is truly absurd.

<comment><USER6> Copyright makes the act of copying something illegal. The only thing the bits might give you is evidence of copying. Trying to think about the law governing human actions only in terms of bits unsurprisingly fails.

<comment><USER7> Isn't it the act of redistributing that's illegal?

<comment><USER8> No, the copying is illegal as well. It's just that copying without redistribution is typically both hard to catch and not worth the copyright holder's attention.

At least, that's how it is in US law. Details at: <http://www.copyright.gov/title17/92chap1.html#106>

</comment></comment></comment></comment></comment><comment><USER9> what's up with the strip-o-meter in the side bar? wacky.

<comment><USER3> From the FAQ: [http://ansuz.sooke.bc.ca/creative/bonobo- conspiracy.php#stri...](http://ansuz.sooke.bc.ca/creative/bonobo- conspiracy.php#stripometer)

<comment><USER10> That only explains the mechanics.

It doesn't answer the important question of WHY?

WHY on earth would an allegedly intellectual someone, who wants to be taken seriously, include an anime stripper girl as a traffic meter?

I'm not offended, but I am bewildered by the lack of consideration of social implication.</comment></comment></comment>


Norway authorities take away Indian couple's kids, say feeding with hands wrong - <AUTHOR> http://www.ndtv.com/article/india/indian-couples-norway-nightmare-kids-taken-away-for-feeding-with-hands-167660

<comment><USER2> eating with the hands is common practice in India, it gives an additional sense of touch, besides looks(eye), smell(nose), taste(tongue) of the food.

also please dont site hygiene as a reason as the mother has masters degree in health care administration.</comment>


I'm Not an Asshole. I'm an Introvert - <AUTHOR> http://www.newyorker.com/humor/daily-shouts/im-not-an-asshole-im-an-introvert <comment><USER2> Oh boy.</comment>


Creating Startup Success – Customer Development + Business Model Design - <AUTHOR> http://steveblank.com/2010/11/15/creating-startup-success-customer-development-business-model-design/

<comment><USER2> I liked this description from slide 13 the second presentation: "a startup is a temporary organization used to search for a scalable business model"

<comment><USER3> Steven also said this live on Startup Lessons learned conference, a few months ago: <http://www.justin.tv/startuplessonslearned/b/262670582>

</comment></comment><comment><USER4> cf. also Mike Maples comment on the importance of being able to draw your Biz Model with arrows in (revenues) & out (expenses) later in this vid: <http://vimeo.com/16098382> (Edit: from 8th mn on). Imo, there is a lot written about "lean startup", to keep my head clear, I keep in mind: 1/Steve Blank's Customer Development (aka PG "go to your users"), 2/ testing, drawing your biz model (like explained by M. Maples), 3/Listening, being flexible, ready to (biz model) pivot (vs simple iterations) when evidence adds up [edit] 4/going to Product Market Fit. If anything simple to remember/execute on let me know.

</comment><comment><USER5> I bought this book off of B&N.com while I was in India (well, I'm still here). I can't wait to get home and read it. Although I haven't created anything from the ground-up yet, books and messages like this are empowering.

</comment><comment><USER6> Great presentation. I just bought the book from Amazon.

I hope the slides are in the book because I couldn't download them through Slideshare:

"The file is damaged and could not be repaired."

<comment><USER7> The biz model blocks from the slide deck are explained in great details (about 60 pages), and the rest is case studies and various ways of visualizing and brainstorming parts of a business. It's well worth the read and has become my primary way of explaining and thinking about businesses.

It doesn't cover validation or customer discovery, or the startup process at all (you'll find it generally has a more corporate feel). Most of that stuff from the deck has been developed from recent meetings between Blank & Osterwalder along with the work of a few others (e.g. Ash Maurya).

</comment></comment><comment><USER8> _Don't build your company, until you've verified your Business Model_

Amusing presentation but it smells like some corporate point of view. I'd remove the word "startup".

Anyway how do you figure out your business model if you haven't even created a product?

<comment><USER9> Steve Blank has written pretty extensively on this - the point of a startup is to search for a repeatable and scalable business model. The business model and product are fluid and change in response to feedback from potential customers. He calls it the "Customer Development" model.

By "Don't build your company, until you've verified your Business Model", he means don't build out an entire company around a business model that hasn't been through the customer development process.</comment></comment>


Every day I learn something new... and stupid. - <AUTHOR> http://jwz.livejournal.com/1307198.html

<comment><USER2> From the comments:

 _Ten days to implement the [Javascript] lexer, parser, bytecode emitter (which I folded into the parser; required some code buffering to reorder things like the for(;;) loop head parts and body), interpreter, built-in classes, and decompiler... Ten days without much sleep to build JS from scratch, "make it look like Java" (I made it look like C), and smuggle in its saving graces: first class functions (closures came later but were part of the plan), Self-ish prototypes (one per instance, not many as in Self)._

That's from Brendan Eich, the guy who created Javascript. Guess you never know when your 10 day project might go big and become something like the assembly for the web. Release early and iterate often seems to hold up quite well here....

<comment><USER3> Holy fuck. He did all of that in 10 days?

Even with a case of Red Bull, a bottle of Adderall, and a heart full of courage, I doubt most of us could come close to that level of productivity. We'd get bogged down in the details. I know I would.

<comment><USER4> It's not clear for me if he _only_ coded for ten days. Or he just sad down and thought all algorithms and stuff, and coded in same time.

More over there was no social media sites like twitter, facebook, etc, at that time :)

<comment><USER5> No waterfall process at Netscape, or anywhere near me since the '80s. I designed and coded at the same time. That, plus lack of sleep, show in some of the gaffes.

But arguably (Doug Crockford may have argued this) the whole process required JS to make more out of fewer, stronger primitives (first-class functions, prototypes). I know I didn't have time for much else, as I said at the ICFP 2005 keynote.

As I told Peter Seibel in "Coders at Work", besides lack of time, I couldn't add anything like (Pythonic, dynamic) classes. That would have encroached on Batman-Java; can't have JS-Robin-the-boy-hostage getting too big for the Netscape/Sun-1995-era-batcave.

<comment><USER6> That's really interesting. I think JS is better for those constraints. Seems like a classic disruption: something perceived to be a toy turns out to take over the universe. Some people may cling to the idea that Batman is the "serious" alternative... meanwhile Robin is installed on approximately every fucking computer in the world. It took 10 years to figure out how great the DNA that made it into JS was, but this is what makes web apps possible. We're extremely lucky to have it. Thank you!

</comment></comment></comment></comment></comment><comment><USER7> Some tea leaf reading....

So, Google built GWT as an abstraction layer over JavaScript which has, fairly effectively (I do a lot of GWT work), made JS little more than a really poorly purposed intermediate form akin to Java bytecode. GWT's pretty fast, but it's certainly limited by the need to express its compiled form in a language designed for humans. It also, interestingly, has a facility for breaking apart a codebase into multiple components for loading in the background.

Now, enter Google's Native Client... It allows a program to be expressed in a very low-level representation (a subset of the x86 instruction set) and interact with the DOM/Event model just as does JavaScript (please fact check this). The Google folks are now working on using LLVM inside the Native Client so that programs downloaded over the web may be expressed in its bit code as a means of platform independence. Hmmmm....so what's the difference between a bunch of bit code and a bunch of machine generated and optimized Javascript? Still a lot, but we're getting pretty close. One would have to send his own infrastructure (garbage collector, etc.) along for the ride with the LLVM Native Client scheme, but that seems like a surmountable problem. There's even a project to build a JVM/CLI impl on top of LLVM (<http://vmkit.llvm.org/>).

Google seems to be working toward making the browser into a sort of X server, and they're attacking the problem from both ends...a SDK with a community around it in a widely-used language (GWT), and a sandboxed, platform agnostic runtime which will allow for a wide variety of languages/ecosystems to run upon it. With the exception of bleeding-edge games, whatever remaining value native applications for 95% of users will be entirely eroded. We can also observe Google's web printing initiative as yet another means of decoupling most people's computing needs from any particular full-fledged operating system.

What I don't understand is how Google will manage to get this scheme adopted as a standard. I believe Mozilla said they aren't in favor of it. And, Microsoft certainly won't play along until they risk having no browser marketshare without it. End users don't care that their computing experience involves DOM and JS -- they just care that it's secure and works well. As a developer, I'd love the freedom of building apps in a language of my choice (presuming it can compile down to the LLVM and run in the browser/Native Client sandbox.

Do people on HN think I'm nuts? Is the endgame of the web a universal application "player" as Microsoft has surely feared for over a decade? What is there to lose in such a scheme? One downside for Google would be that machine- readable content is required for search. But, search is so important for app/site developers that all involved would be willing to make accommodations (see Google's published scheme for allowing GWT/AJAX-y apps to be made crawlable).

<comment><USER8> The problem I have with GWT is that fundamentally Javascript is a better language, warts and all, than Java.

<comment><USER9> You've received several votes for your comment, and I respect that.

But I also respect those who prefer a language which offers type safety. One which does not lay traps of unexpected coercion and unfathomably unusual truth tables. I respect a language which can guarantee and enforce immutability at compile time. I respect a language which has had a sensible packaging system from the outset. One which served as the foundation for many as an introduction to object-oriented programming. A language whose primary implementation is based upon a powerful, performant virtual machine, and one which has had excellent support for concurrent execution of programs and components thereof for nearly a decade. I respect a language whose implementations are not wildly divergent. I am fortunate enough to work with a language whose underlying implementation is flexible enough to host dozens of both static and dynamic languages - including JavaScript itself.

What I do not respect are blanket unqualified absolutist statements and fundamentalisms. I understand that you may have found yourself frustrated at points during which you've written Java in the past. I would like to hear about these, and understand them better. But I'd also encourage you to avoid such totalizing statements, as for a variety of reasons, many may have very good reasons for enjoying things you do not.

<comment><USER8> Javascript and Java manifest their defects differently. Javascript has its own special deployment problems (largely due to history not just intrinsic problems) but for the most part its defects surface as surprising behavior in certain specific cases (unusual truth tables to be sure, but hardly unfathomable), these can bite you but once known they can be avoided and worked around. Java's faults generally manifest as limitations to what you can do. This makes Java seem more polished but the result in practice has been the generation of quite a lot of ugly and cumbersome code to work around those limitations, this is not a good thing.

Java is not a bad language, but its limitations have led to a lot of bad engineering. Javascript is far from perfect, but its core elegance has led to increasingly sophisticated and increasingly powerful uses of the language. In another, say, 10 years the state of Java development will almost certainly continue the status quo of today, whereas the state of javascript development is likely to have considerably advanced.

<comment><USER10>
      > but its core elegance has led to increasingly
      > sophisticated and increasingly powerful uses
      > of the language

Huh? What are these uses of JavaScript that are increasingly _sophisticated and powerful_? This JavaScripter wants to know!

      > whereas the state of javascript development
      > is likely to have considerably advanced.

If JavaScript continues to advance at the lightning pace it's been advancing these past ten years we'll be in exactly the same spot we are now!

<comment><USER5> I'll let someone else cite sophisticated and powerful JS uses.

On the language evolution front: the <http://wiki.ecmascript.org/doku.php?id=harmony:proposals> features are very likely to be in the next edition, by end of 2013. Some are already implemented in Firefox.

<http://wiki.ecmascript.org/doku.php?id=strawman:strawman> contains the full laundry list of possible additions, but among those, [http://wiki.ecmascript.org/doku.php?id=strawman:simple_modul...](http://wiki.ecmascript.org/doku.php?id=strawman:simple_modules) is worth calling out. The module system is likely to be a major feature of the next version of the standard.

JavaScript's standard stalled after ECMA-262 3rd Edition, but that was pretty much because of the IE monopoly and the death of Netscape. All web standards stalled, or went off to XML la-la land.

That was then (1999-2004). Since Firefox restarted browser competition in 2004; then with Safari, the iPhone, etc.; and since 2008 with Google Chrome, which clearly provoked major work in IE9; things are moving again, and standards bodies (still dysfunctional in some hard-to-fix ways) are more balanced than ever in terms vendor representation.

So yeah, the next ten years seem likely to be be different from the last ten.

Not only due to browser competition, but also from the Bell's Law device shift to always-connected, instant-on mobile and away from desktop, indicated above via "Safari, the iPhone, etc."

Some fear this shift means non-interoperable, siloed apps and closed app- stores will dominate, but my money is still on the Web. The Web can evolve to have better apps and stores too, provided browser and Web platform markets remain competitive.

<comment><USER5> I realized after making this comment that some people, swannodette included, were not aware of ES5, which my pointing to Harmony overlooked. ES5 support is almost there in the latest browsers:

<http://kangax.github.com/es5-compat-table/>

It does not fill some of the big gaps left in JS (no module system, that's coming in Harmony), but it helps and it got the standards committee back together (sans Adobe).

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Don't miss the comments on this one, since Brendan Eich (of "invented JS" fame) and Zawinsky worked together at Netscape from the beginning.

<comment><USER12> The comments were more interesting than the article. I had no idea it was created in ten days (if I understood Brendan correctly). I also had a good laugh at jwz's comment:

 _Brendan's house and my nightclub thank us for selling out early and often._

<comment><USER13> It may be old hat at this point but I'd recommend 'Coders at Work', the interview with jwz goes into more depth.

<http://www.codersatwork.com/>

I didn't know about the incredibly short Javascript creation story until that book.

</comment></comment></comment><comment><USER14> I am surprised that jwz wasn't aware of this.

For the record, I think it was a reasonable decision. If you can't make something work well then at least make it simple. JavaScript's treatment of numbers is extremely simple: every number is a double precision floating point number.

<comment><USER15> I also don't understand what jwz's problem with the JS numbers is.

Once you have bit operators, you can do bit arithmetic. So yes it's a bit slower than when having pure integer types, so what? The JS engines were something like 100 times slower up to recently, and nobody really, really cared until Google did V8.

I really think Brendan was right in his decision and I don't get what jwz would like, except to maybe have explicit types in the language, like, hm, JScript.NET or ActionScript.

But even there as far as I know ints are 32 bits. 64-bit OS use is still not so common, so at the time the languages were introduced it was the best engineering decision.

jwz misses this time.

<comment><USER16> > nobody really, really cared until Google did V8

Tamarin and Squirrelfish were benchmark battling before Chrome was publicly released. I think the current focus on performance to be sparked by the CSS selector engine battle between the major JS frameworks.

<comment><USER5> SpiderMonkey (TraceMonkey in August 2008) was battling SquirrelFish (SquirrelFishExtreme in fall 2008) on untyped JS (Taramin did well only if you added type annotations). V8 was "first" only behind Google's firewall, until Chrome released in early September 2008.

</comment></comment></comment></comment><comment><USER17> Same is true in Lua (only one number type, which is double by default), though you have the option to compile it to use a different number type instead.

<http://www.lua.org/pil/2.3.html>

In particular, "long double" on x86 can represent 64 bit integers without loss as well as being floating-point (64 bit mantissa, 15 bit exponent, 1 bit sign). Downside is that it's quite large: 16 bytes.

<comment><USER18> That's 10 bytes. Is it padded to 16 for alignment?

<comment><USER17> Yep. sizeof(long double) == 16, at least for me on gcc and Linux. Keep in mind that different compilers implement "long double" differently. According to Wikipedia, MSVC++ just makes it a synonym for "double," but most other compilers on x86 make it this 80-bit "extended precision" floating point.

<comment><USER19> With MSVC on x86, you can pass /Qlong-double to the compiler for it to "properly size" the long double type :)

</comment></comment></comment></comment><comment><USER20> This applies to numbers in JSON as well: if one end is JavaScript then you can't assume large integers will survive a round-trip.

(GWT emulates longs.)

</comment><comment><USER21> _It's like an AI Koan: "One day a student came to Moon and said, 'I understand how to avoid using BIGNUMs! We will simply use floats!' Moon struck the student with a stick. The student was enlightened."_

Better would be ... Moon then struck the student 100000000000000000-10-1000000000000000000+10 times. The student was enlightened

</comment><comment><USER22> In a comment a bit over a year ago, I noted that JS was being increasingly used as an object code; I asked whether people thought it was suitable for that use.

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

There was some disagreement in the replies to my comment, but the general consensus seemed to be that JS is very suitable for use as an object code.

But this article makes me wonder. Increasingly, we're compiling HLLs into an object code that only kinda-sorta has integer arithmetic. Is this a good idea? I'm dubious, to say the least. Certainly this property of JS puts some nontrivial constraints on the design of an HLL that can be efficiently compiled into JS.

In any case, interesting post.

<comment><USER6> Since I replied in that thread, here's an update. A year's subsequent experience has diluted my enthusiasm, though not too much (say by 20%). JS is an easy language to generate because it's so flexible. Some of its most loosey-goosey weirdnesses (like the _arguments_ pseudo-array) turn out to work really well for representing other languages' constructs (such as, say, named args). The big downside is if you're trying to do anything computationally intensive. To the extent that you want code to do anything numeric or binary, you're in trouble - forced to work at too high and too kludgey a level. Of course JS wasn't designed for anything like this and the fact that we're even talking about it in this context is a testament to fantastic technical and not just market success.

A couple side notes...

Actionscript is the inverse case, an abominable language that manages to wreak incredible damage on something pretty good (ECMAScript) in surprisingly few steps -- mainly, as far as I can tell, by trying to turn into something "proper" a.k.a Java, a fate that JS itself was fortunately forced to avoid -- but it provides access to one lower level than JS does, and this is a big deal for some kinds of programs. We're probably going to use Flash (when available) as a computational accelerator for this reason.

Second, our results suggest that the real gamechanger here is V8. I know that most of the benchmarks out there show Tamarin and other VMs somewhat competitive with V8. Not in our world. I'm talking a couple of orders of magnitude difference. It's astonishing. If everyone would just use Chrome, we would have no performance problems at all.

<comment><USER15> > an abominable language that manages to wreak incredible damage on something > pretty good (ECMAScript) in surprisingly few steps

Can you please give some specific examples? I'm curious. I think you mention yourself that you can get faster execution with it, so that's the positive side. What's the damage?

<comment><USER5> I gave a concrete example in a comment on jwz's blog, referencing my blog for the 2007 @media ajax talk I gave, showing how AS3's type annotations can slow things down. If you have a loop and annotate the loop control variable as int, but it flows into expressions that evaluate arithmetic, then per the unchanged-from-JS rules, you get IEEE754 double evaluation. This means widening not wraparound on overflow. It is non-trivial to optimize to remain in the ALU. But the int storage type means stores have to be narrowed correctly from double to int.

Not annotating the loop control variable lets two things happen: 1) everything on the FPU, which if SSE has a lot of bandwidth in parallel to the integer units, which can still handle addressing and known-int chores; 2) tracing JITs can speculate, and type inferencing JITs can infer, that the loop control fits in an int, and all evaluation and storage can use int domain.

<comment><USER15> Yes, once you have type inferencing, starting from "just a number" is more convenient and forcing everywhere, needed or not, the bigger number back to int is certainly problematic. Moreover the fastest conversion (on a typical hardware) of IEEE numbers to ints is not truncation but rounding. Excuse me for not knowing that but does JavaScript today manage not to truncate at the places (if they exist) where rounding would be acceptable?

<comment><USER5> I wish!

Converting from double to int32 or uint32 in JS is far from a simple truncate or round, although it entails floor. From ECMA-262 5th Edition:

9.5 ToInt32: (Signed 32 Bit Integer)

The abstract operation ToInt32 converts its argument to one of 2^32 integer values in the range −2^31 through 2^31−1, inclusive. This abstract operation functions as follows:

1\. Let number be the result of calling ToNumber on the input argument.

2\. If number is NaN, +0, −0, +∞, or −∞, return +0.

3\. Let posInt be sign(number) * floor(abs(number)).

4\. Let int32bit be posInt modulo 2^32; that is, a finite integer value k of Number type with positive sign and less than 2^32 in magnitude such that the mathematical difference of posInt and k is mathematically an integer multiple of 2^32.

5\. If int32bit is greater than or equal to 2^31, return int32bit − 2^32, otherwise return int32bit.

NOTE Given the above definition of ToInt32:

• The ToInt32 abstract operation is idempotent: if applied to a result that it produced, the second application leaves that value unchanged.

• ToInt32(ToUint32(x)) is equal to ToInt32(x) for all values of x. (It is to preserve this latter property that +∞ and −∞ are mapped to +0.)

• ToInt32 maps −0 to +0.

\--- end snip ---

Note that this path is rare in code that does not use shift or bitwise-logical operators or certain built-in functions. See <https://bugzilla.mozilla.org/show_bug.cgi?id=597814>.

</comment></comment></comment></comment></comment></comment><comment><USER23> Brendan responds on his blog to set the story straight: <http://brendaneich.com/2010/10/should-js-have-bignums/>

</comment><comment><USER24> So basically, the only numeric type of javascript is a float, which can only represent integers up to 2^53 accurately. Not good if you need an int larger than that.

<comment><USER11> If you need an int larger than that in JS, you use a bignum library.

<comment><USER25> ...yes, that would follow.

Ow. Ow. Ow.

At least the bignum library will be easier to write in JS than in C...

<comment><USER26> You don't have to roll your own, do you?

</comment></comment></comment></comment><comment><USER27> I've given up on reading jwz. De-css-ing doesn't help and readability only shows the comments.

</comment><comment><USER28> It's like an AI Koan: "One day a student came to Moon and said, 'I understand how to avoid using BIGNUMs! We will simply use floats!' Moon struck the student with a stick. The student was enlightened."</comment>


The Best App That No One Writes About But Every Founder Should Have  - <AUTHOR> http://www.businessinsider.com/the-best-app-that-no-one-writes-about-but-every-founder-should-have-2012-9

<comment><USER2> Fun fact: _every_ founder has an iPhone. Can't be a founder without one.</comment>


Moving Files from one Git Repository to Another, Preserving History - <AUTHOR> http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/

<comment><USER2> An excellent tool I have used for similar purposes in the past (although it can do other things as well) is git-subtree. I recommend checking it out: <https://github.com/apenwarr/git-subtree>

Edit a more useful page: [https://github.com/apenwarr/git- subtree/blob/master/git-subt...](https://github.com/apenwarr/git- subtree/blob/master/git-subtree.txt)

<comment><USER3> That was my thought as well, but then I thought that the requirements might be different here. git-subtree would allow you to create a git repository (with history) from a directory in a pre-existing repository. You could them just 'git rm -r' the directory from the original repository, but I'm not sure if the requirements here are to completely remove the history of that directory from the original repository too (because git-subtree doesn't do that, to my knowledge).

<comment><USER2> I agree, git-subtree doesn't quite do what they do in this blog post, but it covers similar ground and is really easy to use in comparison.</comment></comment></comment>


The Canon Cat - <AUTHOR> http://www.jagshouse.com/swyft.html <comment><USER3> My uncle was one of the programmers on the Cat project, he still has a working production unit. The Cat is a handsome little machine. There's something elegant about its lack of silos: all of your (textual) data is in one space that you leap around with the aid of dedicated search forwards/backwards keys, reprogramming or extending the system itself is likewise a keystroke away. It obviously wasn't a commercial success, but the user was indisputably the boss of the thing.

<comment><USER4> _" but the user was indisputably the boss of the thing."_

Thanks for posting: I read Raskin's _The Humane Interface_ some time ago. I wondered then and now if the fact that the user was the boss was actually part of the problem with sales? Reasonably steep learning curve?

</comment></comment><comment><USER5> This wasn't an isolated incident of innovation from Canon. Can anyone remember their 486 laptop with built in printer/scanner?

The 'note jet' had the same form factor as a normal notebook of the era. The printing part was roughly where you would expect the function keys to be, under the hood there was a miniature inkjet cartridge that could be swapped out for a scanning cartridge. The paper line was pretty good, going under the keyboard. I can't remember there being a paper tray.

In those days 'executives' struggled to plug a printer in so it solved the 'check connections' problems they faced. It also looked very cool, distinctly 'from the future'. Actually the idea was from the past - this was a take on the standalone electronic typewriter. I always felt the idea needed to live on, not least for travelling salesmen that need some sales order printed out and signed whilst at a customer's site.

They dropped the model when the Pentium came along for the idea never to be seen again.

<comment><USER6> You can relive the memories by reading the 1993 NY Times review:

[http://www.nytimes.com/1993/04/18/business/the-executive- com...](http://www.nytimes.com/1993/04/18/business/the-executive-computer- canon-s-new-laptop-packs-a-nice-printer-inside.html)

<comment><USER7> I loved this bit:

"The Note Jet is also a harbinger of future generations of mobile computers that offer many features that executives now enjoy in their offices. If a laser-quality printer can be tucked inside a notebook PC, it probably won't be long until we see built-in cellular telephones with answering machines, wireless pagers and beepers, send and receive facsimile capabilities with a built-in scanner, and even video cameras for remote teleconferencing."

I was reading this from a tiny computer containing a built-in cellular telephone with (remote) answering machine, wireless paging and beeping (text messaging), send and receive facsimile capabilities (e-mail or other messaging, with images) with a built-in scanner (camera), and even two video cameras for remote teleconferencing. This paragraph struck me as remarkably prescient.

</comment></comment></comment><comment><USER8> I had a Canon CAT. The praise for it is overrated. It was never as simple as people claim nor really any joy to use. The hardware itself also tended to die suddenly. When mine died I went to repair place where I happened upon the Canon rep. He said the CAT's motherboard was prone to suddenly dying and the only solution was to buy a new CAT.

</comment><comment><USER9> And now you can relive this classic computer in your browser, courtesy of JSMESS [1] (although, at the moment, it doesn't run at 100% speed).

Information on key bindings and how you can e.g. activate the FORTH interpreter can be found here [2], although I couldn't get the FORTH interpreter working (I'm not sure if the browser/Emscripten can properly distinguish between ALT keys).

[1] [http://jsmess.textfiles.com/messloader.html?module=cat](http://jsmess.textfiles.com/messloader.html?module=cat)

[2] [http://mamedev.org/source/src/mess/drivers/cat.c.html](http://mamedev.org/source/src/mess/drivers/cat.c.html)

</comment><comment><USER10> I've always been a fan of the way the Cat works. So much so that my main work tool is pretty much a copy of the Cat on modern hardware. It beats, and has been beating for a bunch of years now, any alternative that I try to give a go.

PS. Notational Velocity and NValt are pretty awesome too.

<comment><USER11> can you elaborate? what is your main work tool?

<comment><USER12> The mischief in me wants to say that its probably emacs or something .. ;)

<comment><USER10> Emacs would be perfect for this, if it weren't so dammn complex/complicated. The learning curve is too steep for someone who just wants to write and isn't a programmer.

</comment></comment></comment></comment><comment><USER13> From one perspective, Jobs and Raskin ended up going down two opposite paths.

Raskin emphasized that "modes" were a major cause of UI problems. Essentially you want a UI that the user can habituate to as strongly as possible, so that all one's attention can be focused on the actual task and all of the administrivia you need to do tell the computer your intention are handled subconsciously. Like touch typing at a higher level.

The issue with modes is that they break habituation. If performing a given UI gesture does one thing in one mode and another thing in another mode, you can't make that gesture a habit. For example: Cmd+Z is a conventional gesture that many applications interpret as undo. If the keyboard shortcut changed between applications (or worse Cmd+Z meant something else in another application/mode), it wouldn't be so habitual and you'd be less productive.

Raskin was very serious about no modes. The Cat for example didn't even have an on/off mode. It would go to sleep to save power, but if you started typing it would buffer all your key strokes and have them in your document by the time the thing woke up. That is, you didn't have to switch from off mode to on mode! And because you were always in a document (that is, there were no separate application modes), you knew that typing some words always did the same thing, so the scheme really worked.

On the other hand, Apple has really pushed, especially since iOS, on the "App" model. Applications are, of course, giant modes. And the strategy has been to push a separate App (mode) for every single use of the machine. So rather than learning a few powerful gestures and then combining them to do disparate tasks, users need to learn a separate, surface-level gesture complex (App) for each individual task they want to do on their machine.

Which is more efficient or appealing? On what time scale of use?

Did Apple end up this way because Apps are a more natural fit for a consumerist model? "Want to do this task with your machine? Don't bother figuring out how you can do it yourself. There's an App for that!" No Modes vs Buy More Modes?

Raskin's book, The Humane Interface, talks extensively about his UI design philosophy. In addition to explaining the above problems with modes, he discusses how to actually design a computer system with no modes (I believe an elaboration of what he did with the Cat). He also explains other really important UI principles and their ramifications, for example, "The user's data is sacred" (hence undo).

PS:

Raskin's definitions: A _gesture_ is defined as an action that can be done automatically by the body as soon as the brain "gives the command". So Cmd+Z is a gesture, as is typing the word "brain". What constitutes a single gesture will be different depending on the user! A _mode_ is defined as any situation _not at the user 's locus of attention_ that would cause a gesture to perform an action different from another mode. So "pseudomodes" where the user holds down a modifier key or holds the mouse button while performing a drag gesture get around this since they keep the user's locus of attention on the fact that they are performing the pseudomode.

I think both the above definitions are still a bit problematic but Raskin's definitions are better than any other that I've heard. I hope there are more people who study and discuss these deep UI design issues! What do you think about modes?

<comment><USER12> >>>Did Apple end up this way because Apps are a more natural fit for a consumerist model? "Want to do this task with your machine? Don't bother figuring out how you can do it yourself. There's an App for that!" No Modes vs Buy More Modes?

Bingo! Evidence that this is the case: not many computers ship with compilers onboard any more. OS vendors want you to continue to invest in their platform - Apps just happen to be a way to do that. There is a vested interest in making developer tools as weighty and difficult (for the PITS) as possible .. why learn programming when you can just buy an app? In many ways, we've gone completely backwards in the computer industry - users have to spend a lot more time and effort to maintain their platforms than they should have to.. same is true of developers, as well. The fuss and nonsense required to just get a window up on the screen being one case in point. We're all scrambling to learn these new - but not necessarily better - technologies, because the OS vendors have a vested interest in capturing the minds of their users.

<comment><USER14> _There is a vested interest in making developer tools as weighty and difficult (for the PITS) as possible .. why learn programming when you can just buy an app?_

This is nonsense. You appear to be arguing that every computer user should be able to develop software - equivalent to arguing that every driver should be able to build a car.

You know why modern computers don't ship with development tools? Because they are no longer used exclusively by people who are computer programmers. They're mass-market devices now, and one of the requirements of that is that they need to allow users to perform tasks without learning how to develop software - <USER2> act that is totally orthogonal to actually performing those tasks.

Coupled with this, those people who _are_ developers and require access to development tools have immediate access to them, thanks to the Internet. You can immediately download SDKs and IDEs for both Windows and MacOS, and every major Linux distribution comes bundled with a compiler. Same for Android, iPhones, etc. - it would be nothing but a waste to provide development tools when the vast majority of users do not require them, and when they are so easily available elsewhere.

I'm also completely unclear what "fuss and nonsense required to just get a window up on the screen" you think exists, given the ~10 lines of code which is required to do this on any platform.

<comment><USER12> Its not nonsense - it used to be that you _could_ write a new application for your computer if you wanted to, easily enough, and you'd have the exact same tools as anyone else would have - because the computer shipped with them.

The 'developers' arose as a class of society simply because computer use became decoupled from application development.

>>10 lines of code to make a window

But this doesn't actually do something. Used to be, you could write a functional application with 10 lines of code -but now, because computing is being run by Fashion Directors (I agree with you on this, btw) where 'trends' are more important than actual use, we get a lot of weight added to the truss normally bearing the load of 'usefulness' to the user.

I don't consider that we've actually made a lot of progress with human computer interaction over the decades since the Canon Cat was around. In many ways, I think we've been side-tracked in the computer industry. The rise of Windows, for example, set the whole computer industry back 10 years ..

<comment><USER14> _Its not nonsense - it used to be that you could write a new application for your computer if you wanted to, easily enough, and you 'd have the exact same tools as anyone else would have - because the computer shipped with them._

Yes, it is nonsense. Development tools are easily and freely available to anybody who wants to use them.

 _The 'developers' arose as a class of society simply because computer use became decoupled from application development._

Developers exist because development of applications is inherently more complex than use of applications, almost by definition.

 _But this doesn 't actually do something_

It displays a window.

 _Used to be, you could write a functional application with 10 lines of code_

You still can, and you'll be able to accomplish a lot more than you could 25 years ago.

 _but now, because computing is being run by Fashion Directors (I agree with you on this, btw) where 'trends' are more important than actual use, we get a lot of weight added to the truss normally bearing the load of 'usefulness' to the user._

I don't agree with you. Computers are being designed to aid users in accomplishing tasks, which is exactly what they should do. That they are not required to understand the internal workings is a _good_ thing.

<comment><USER12> I believe that the reason its so difficult to understand the internal workings is the intention of the OS vendors - and this is not an altruistic purpose! If computers were very easy to develop for, a lot of people who have a vested interest in maintaining their control and secrecy might have to re-educate themselves. What I see happening in the industry is the same thing that happens in Class-based societies - as soon as there is an opportunity to draw a line, it is drawn - and we then have two classes of people.

Repeat, ad infinitum ..

</comment></comment></comment></comment></comment></comment><comment><USER15> This is an outline for a computer designed for the Person In The Street (or, to abbreviate: the PITS); one that will be truly pleasant to use, that will require the user to do nothing that will threaten his or her perverse delight in being able to say: "I don't know the first thing about computers"

Interesting perspective :D

</comment><comment> Al-Khwarizmi It took a while for me to realize that there was a scrollbar, leading to more content apart from the ad at the top.</comment>


Comparing Dplyr vs. Dataframes.jl (R vs Julia code comparison) - <AUTHOR> https://bkamins.github.io/julialang/2020/07/03/dplyr-vs-df.html <comment><AUTHOR> Older post to this link attracted two comments, which articulated a difference of taste between those who prefer R to Julia syntax.

[https://news.ycombinator.com/item?id=23737449](https://news.ycombinator.com/item?id=23737449)</comment>


Here's Why Public Wifi Is a Public Health Hazard - <AUTHOR> https://medium.com/matter/heres-why-public-wifi-is-a-public-health-hazard-dd5b8dcb55e6 <comment><USER2> It definitely is a risk, but how big and how common? I mean, yes, you know where I was (and probably where I'll go if you get a hold of my home address, but it'll be stupid to put that online), stuff like that, but how many people would actually use that info to harm you? Even more, how will they use it? It's more our responsibility to make sure we don't put critical info online rather than watch out for hackers. Nothing to lose, nothing to worry.

</comment><comment><USER3> [https://news.ycombinator.com/item?id=8461206](https://news.ycombinator.com/item?id=8461206)

[https://news.ycombinator.com/item?id=8457167](https://news.ycombinator.com/item?id=8457167)

There are probably more, each with its own discussion.</comment>


Why Chipotle Does Less (Applies to the Get Real model) - <AUTHOR> http://www.fastcompany.com/node/756447/print

<comment><USER2> There's another fast food chain that's kind of like this: Five Guys Burgers and Fries. Best burgers I've ever had. And they only serve burgers and fries (the occasional drink, maybe, if you're lucky and you ask nice) and that's it. They make everything from scratch.

I think focusing on something simple and making it super-special is a great way to make a business.

<comment><USER3> I like In-n-Out's approach. They have a simple upfront menu, but a secret menu if you want something different. The mystery aspect creates an in-crowd, who'll be more loyal.

Google and Apple seem to take this approach too. I don't see anyone trying to guess Microsoft's next big thing.

</comment></comment><comment><USER4> Also relevant to 37s philosophy is the fact that they charge for something (chips & salsa) that most people expect to get for free.

Which is why I get my burritos at Willy's :)

<comment><USER5> Conversely, I don't like chips and salsa with my burrito, I think it is a waste of money, and that's why I avoid Willy's and Moe's and stick with Chipotle.

<comment><USER6> I go to Qdoba over Chipotle because the chairs/stools at Chipotle are intentionally designed to make you uncomfortable so you don't stay very long.

Baja Fresh was my favorite quick service burrito place, but the local one closed and was replaced by Chipotle. No idea why they closed, they were always packed.

</comment></comment></comment><comment><USER7> I think they really need to add queso to the menu to take it to the next level.

<comment><USER8> Chipotle will be resigned to be a perennial runner-up to Qdoba until they get queso. Everybody knows that Qdoba is number one (except crazy people).

</comment></comment><comment><USER9> If you like Chipotle, you should find a Pancheros. Pancheros is very similar to Chipotle, but it has much better tortillas, and that makes a huge difference.

<comment><USER10> Pancheros tortillas are superior (and fresher), however the rest of their ingredients leave a lot to be desired. And there's no fajita burrito option at Pancheros.

</comment></comment><comment><USER11> "Get Real" model?

<comment><AUTHOR> <http://37signals.com/getreal/></comment></comment>


Ask HN: How much of your code review ends up as comments on style/form? - <AUTHOR> I have encountered a number of situations where a majority of code review comments for my team end up being (slightly pedantic) style/form related. Some times its a matter of naming conventions, others its something like `prefer const over let if no reassignment`.<p>It feels like a lot of this could/should be covered by linting rules. Am I the only one who runs into this? <comment><USER2> Except for one company I worked for, I'd say about 10% of the comments from my code reviews (and code reviews of others that I've attended) have been about this sort of thing. It tends to be brought up only if something is egregious (such as if the formatting or naming is likely to lead to confusion and error when other devs work on the code).

The one exception is interesting -- it was the only place I've worked that did online code reviews rather than in-person ones.

I disliked the online reviews for a number of reasons, the second largest being that the quality of the reviews were very, very low and the comments primarily consisted of the sort that you're talking about here. I think it's because those sorts of observations and comments are quick and easy to do, and devs tend to start just going through the motions rather than actually putting attention and thought into the review.

For the record, the largest problem I had with the online version was that it omits the part where the dev walks through the code being reviewed, explaining what it all does. In my experience, that process alone provides half of the value of code reviews. I can't count the number of times that the dev (including myself) would be partway through this walkthrough and suddenly spot an issue that escaped him -- and would likely have escaped the reviewers as well.</comment>


The entropy of code - <AUTHOR> http://www.maximise.dk/blog/2008/12/entropy-of-code.html

<comment><USER2> When I saw the title, I thought it would be about the information theoretic application of entropy, and talk about the maximum densities of useful work that can be expressed in a given number of characters. I further imagined the article talking about how abstractions are often good, and the move toward more expressive languages is in the large positive, but then exploring how it can be overdone like in the "Perl golf" exercise; and perhaps attempting to find a function or algorithm defining the optimal density for a balance between compactness and readability.

That'd be an interesting article.</comment>


What I Learned at Activision - <AUTHOR> http://c0de517e.blogspot.com/2019/03/what-i-learned-at-activision.html <comment><USER2> _> What's interesting about this particular bunch of smart people, is that they are also what actors call "grounded". There is little bullshit going around. Tech is not made for tech's sake. We don't even have an engine, in a time where even if you really just have a game, one game, one codebase, you would call silly codenames each library and each little bit of tech, and maybe put some big splash screens before your main titles. Made with.. xyz.

This is actually a lesson that originates from the early days of Call of Duty at IW. From what I'm told, IW never named their engine, because any time you name something it becomes a bit more of a thing, and you start working for it. And they were a studio making games, the game is the thing. Nothing else._

This taps into a really interesting idea that I've been thinking about a lot. In high school, when I first started making games, this is exactly what I'd do. I would have Unity open on two monitors, and post to my snapchat story of how excited I was to be an indie developer.

I had a similar thought when I watched the making of documentary for The Last Jedi, everyone was so excited that they were making a Star Wars movie. But in 1977, I'm sure George Lucas was just thrilled to be able to make what he wanted to make.

I think this is what PG meant when he described playing house[1]. I think there's a lower local maximum for imitating what your heroes did or innovating for the sake of innovating than the global maximum of trying to make something really good. There's nothing wrong with getting excited about what you're created, but if you have any way to direct that excitement, direct it towards making something that people will love. (Not something that you'll love making).

[1] [http://paulgraham.com/before.html](http://paulgraham.com/before.html)

<comment><USER3> I don't know. I've played games where the engine had no name, and games where the studio-made engine had a name, and games where they licensed an engine and made it work. And I don't think there has been any kind of a trend in what games I've enjoyed more, or even which ones had better rendering. This sounds like one of those things that doesn't really matter, but if you've gotten used to doing it one way, you think it's the right way.

<comment><USER4> Many enjoyable games also came together in extended crunch time. Doesn't mean that's a good way to get to the end result.

</comment></comment></comment><comment><USER5> I think my time ended shortly before Angelo's began, but my experience with Central Tech (worked mostly with Steve L. and Guarav) was that they were _very_ talented generalists. They were the team you dropped in to work on C++ game code, Lua UI code, Erlang server code, or Python scripts. They were a resource to work on anything you needed and you could give them a task knowing it would be done well.

The director of development at BeachHead studios originally applied for Central Tech.

</comment><comment><USER6> How do independent R&D teams know if something is already solved or not? There are so many papers out there, how can they focus obtaining the new information but try their own solutions as well for a commercial purpose? Maybe its a n00b question and it only means I have 0 R&D xp, but things I am thinking about is always found in a paper with tons of references.

That is why I not decided to choose a similar position, because what I feel I'd do is asking permission from my boss to check "all the necessary information out there" to make sure I am aware of existing technology not to reinvent or miss things. Would take infinite time obviously. :D

<comment><USER7> Author here - we are specialists who know their field. More or less, of course you can't know all, we also collaborate with each other, but keeping up with published research is not that tough. Also, not that useful, it is useful, yes, but in practice even a problem that is "solved" in the literature means only that you have some ideas of where to start. Dropping things to the specifics of production always implies a lot more R&D, even if the solution in the literature is actually, realistic, stable, fast etc...

</comment></comment><comment><USER8> Although I only worked indirectly with Angelo during my time at Activision (Sledgehammer games on Danny Chan's team) he was a big influence on my career at the time. He gave a talk at the Activision summit that originally got me interested in machine learning. His weekly Friday links helped me greatly level up in rendering knowledge, and I liked them so much I continued the practice for almost two years at Funomena while I was there. Definitely interested to see where he ends up. The end of his goodbye hints that he's starting a startup or going indie rather than joining another big game company or FANG. Looking forward to his talk at GDC.

<comment><USER7> That was my worst talk! Thanks for the kind words.

</comment></comment><comment><USER9> Nice summary of all the experiences at different studios. Added points for being in multiple studios in Vancouver. ;)

</comment><comment><USER10> Really reflects how I feel at King as well. Spot on!

</comment><comment><USER11> Your english made me feel you are french but you name sounds like arabic (jasim)?

<comment><USER12> It doesn't matter to the subject at hand, but there are plenty of immigrants in French speaking countries as well as French speakers in countries with a lot of non-ethnic-French people (for example I have an older relative who was born in Morocco and speak French as her first language).

Regardless, as their first job was in Italy I'd sooner assume they are Italian.</comment></comment>


Startup Quote: Noah Everett, Founder, Twitpic - <AUTHOR> http://startupquote.com/post/11023220356

<comment><AUTHOR> When you're a one man show you have to focus on the most important thing to get done today.

\- Noah Everett (@noaheverett)

<http://startupquote.com/post/11023220356></comment>


Install Machine Learning Services in SQL Server - <AUTHOR> http://www.nielsberglund.com/2017/03/04/microsoft-sql-server-2016-r-services-installation/ <comment><USER2> It's a really nice feature introduced in SQL Server 2016. But does it offer backward compatibility with SQL Server 2008 and 2012? That's the most important question right now. Will Microsoft offer it in the product updates or a separate package that can be installed with the previous versions?

<comment><USER3> > Will Microsoft offer it in the product updates or a separate package that > can be installed with the previous versions?

That's extremely unlikely. They rarely port features back to prior versions.

</comment></comment><comment><AUTHOR> How to install In-Database Analytics in SQL Server 2016 and 2017</comment>