Training an AI to convert design mockups into HTML and CSS - <AUTHOR> https://medium.freecodecamp.org/how-you-can-train-an-ai-to-convert-your-design-mockups-into-html-and-css-cc7afd82fed4 <comment><USER2> The example mockup image shown is really unimpressive. As usual, the difficulty is in implementing the last 20% of edge cases and design subtleties, not well-defined black-and-white block layouts like the given example. It would've been simpler to build a classical program to handle that example, and the result would be much better and more predictably structured.

It's like programming a self-driving car for a 2D game. Trivial. Now try taking that to tar roads. I don't know why this toy example is even news, it's nowhere close to the difficulty of real-world design mockups.

The AirBnB sketch2code example is a lot more impressive, but that's basically just handwriting recognition with a 1 to 1 mapping of symbols to code pieces.

<comment><USER3> Yes, this is typical AI weenie optimism. "We can handle many of the easiest cases, so in X years we will be able to do all the really hard things that we haven't even thought of yet!" No.

<comment><USER4> You could have made you point in a far better way that encourages and doesn't berate. Eg often people are optimistic but are unaware of the hard edge cases, the edge cases are interesting

</comment></comment></comment><comment><USER5> Aren't there a bunch of WYSIWYG tools for creating appearance and HTML/CSS together? Years ago when I looked, these existed (but designers prefered photoshop just because).

I mean, I'd assume also there's normally a give-and-take between designer, CSS-artist and client. The question is whether the neural network can also learn to take calls at 3am from a client wanting a different shade of aqua.

<comment><USER6> I'm pretty sure Adobe is still making Dreamweaver.

I know that's how I built my first website way back in grade school.

</comment></comment><comment><USER7> Writing HTML and CSS to implement a mockup is trivial for anyone with even a little bit of web dev experience. If you want high quality code, an AI isn't going to produce that.

I can't imagine ever using something so complex, if I can implement the same thing in a few minutes.

There's also further considerations when dealing with the real world. For example, you need to be aware of how to handle different accessibility features. Designers rarely seem to care about things like accessibility, but it needs to be declared somewhere.

<comment><USER8> If we think AI would not do awesome code, then we're ignoring the achievements of many of the AI bots. I saw an LOL bot outperform lots of world class videogamers. What makes you think a bot will not outperform any HTML/CSS frontend dev.

<comment><USER9> Right now, context. The ai will outperform us.

But it currently lacks a lot of data to do so. A mock up is only a small part of the data and feedback loop you need to create a ui.

<comment><USER10> And then layer in techniques for performance and accessibility best practices. Those are complexity modifiers beyond just slinging code out of an AI.

</comment></comment></comment></comment><comment><USER11> This is what we are all working for. If we can automate the stupid stuff we do then we can work on other interesting stuff and automate it too.

I don't understand why we aren't all working on automating everything that we do.

Every line of code you pulled out of the code mine today is finite and given a business logic rule engine it's outcome could have been generated.

<comment><USER12> Because we like being employed. I don't get paid by increasing the global productivity of society. The idiot who automates their own job (and shares it with their employer) is much more likely to be impoverished than lauded.

<comment><USER13> I see this attitude all the time while people are being automated out of their jobs. Those people end up getting laid off anyway, and then wondering why jobs for their skillset don't pay as much as they used to.

Resisting automation doesn't help, because if you don't do it, someone else eventually will.

If you're in a job that's at risk of being automated in the near term, you're much better off learning how to automate it and switching to being one of the automators, than continuing doing something that's all but proven to be something machines can do. People capable of automating jobs out of existence are in high demand, for obvious reasons.

If you're not _capable_ of becoming an automator, that's more of a problem. In that case you probably need a strategy for moving into a different kind of job, that's less threatened.

<comment><USER14> Here is a silly question

Why will everyone need jobs if so much stuff is automated? Why not just give out free money?

<comment><USER15> I don't think it's a silly question, but I think free money basically means dismissing the money system altogether. That would work in an ideal world with ideal people but we are not that far out of the jungle yet (and I'm not referring to intelligence levels but to qualities that didn't evolve as fast as our intelligence). So, while you're right in principle, in practice there will probably still be a lot of injustice and suffering to go around long after everything is automated. Having said that, I still think it's a step in the right direction to reduce the ills of society.

</comment></comment></comment></comment></comment><comment><USER16> What's the point of the code isn't human readable? You need to train the AI to write code that is easily modifiable with low dependencies. Otherwise the conversion isn't very useful for anything unless your page is completely static

<comment><USER17> Right but what if we didn't have to code anymore? Who would be reading it? Meaning, we don't worry about compiler readability anymore, we used to when assembly was fine tweaked etc. Just a thought. I work on full stack including front end animations etc but frankly its tiring and time consuming work to do that. Imagine if code was just you talking to it or showing it some whiteboards, then you would just talk to it again or show it other whiteboards. Code doesn't matter in that case.

<comment><USER18> It's unlikely we will leapfrog from human-written code to relying on black-box generated code in one step. Everyone's been pointing to AI being used to augment existing jobs, as opposed to outright replacement.

In order to augment a front-end developer well, we'll need human-readable code, unless we like reading uglified code/make an AI for that too.

<comment><USER19> We did with compilers, isn't this analogous?

</comment></comment></comment></comment><comment><USER20> Honest question: is anyone else sensing some defensiveness here? The timeframe is open to debate but what's more controversial is whether html/css is near the frontier of solvable problems. After AlphaGo, my worldview is changed forever. Glad to be still being valued for something I started out of joy but in no way feel it's not disruptable. Sometimes I even wonder why it hasn't advanced further since it's quite well defined, digital data in/out.

<comment><USER21> Yup, lots of ppl are very defensive about this! We are the farm workers looking at a prototype of a combine harvester. We will stop ourselves from believing it until its taken our job and then we will claim it was obvious all along. Ppl are emotional.

</comment></comment><comment><USER22> This is really cool and I believe necessary work. We need to start thinking about how to automate programming and to free ourselves much further from the mundane. Trust me, there is still plenty of room for people to analyze requirements and come up with a high level solution to people's problems that doesn't require fiddling with float: right and various technical hacks.

That said I wonder if this is the right approach. At some point "AI" as used in this context is just a function mapping from an input domain to an output domain. The output domain in this case, "code" was designed for human readability (whether it succeeded is a whole different approach).

What would a programming language designed for output from an AI system look like? How could we optimize it to reduce the output domain size of the function the AI has to train to learn? How could we optimize it to make the problem more tractable for machines? I feel like there is an entire field of research here. Maybe it has already been studied and I am just late to the game.

</comment><comment><USER23> Turning web design mockups into code with Deep Learning | [https://news.ycombinator.com/item?id=16115353](https://news.ycombinator.com/item?id=16115353) (Jan 2018)

>chrisfosterelli: _This is a neural network that takes an image and predicts very simple blocks (like BODY, TEXT, BTN-GREEN in the bootstrap example) and then uses a map to convert them to well-formed HTML_

>jamesjyu: _I 've always wanted to do a contest with other frontend coders to see who could get closest to a complex layout—like the NYTimes—in one go._ >>janneklouman: _these types of contests exist! I went to one of these[1] maybe two years ago in Stockholm and I had a blast_ [1] [http://codeinthedark.com/](http://codeinthedark.com/)

Pix2code: Generating Code from a GUI Screenshot | [https://news.ycombinator.com/item?id=14416530](https://news.ycombinator.com/item?id=14416530) (May 2017)

<comment><USER24> That second link doesn't have anything to do with A.I. does it?

<comment><USER23> > _a contest with other frontend coders to see who could get closest to a > complex layout_

I don't know of any record of past entries nor if any participants used A.I.; it doesn't seem likely.

</comment></comment></comment><comment><USER14> Why are design mockups done in photoshop, when HTML and CSS can be faster and easier once you have the basic components??

<comment><USER25> 1) Because that's how most designers create layouts who can't code an not really interested in doing so.

2) It demonstrates AI capabilities on a new level.

3) If you design in PS or Sketch, then you will create more interesting layouts, because you won't skip things that are inconvenient or hard to do.

<comment><USER26> Does anyone use SketchApp to design at all? Just curious, I thought Photoshop was being replaced..

<comment><USER27> Yes, millions of designers use Sketch, Invision and Adobe XD. Photoshop is getting disrupted at every low end feature-set. Photoshop will remain the standard for complex image editing despite AI or whatever, because decades of cutting edge research and patents.

</comment></comment></comment></comment><comment><USER28> OK this is juvenile but I found it funny that after 250 epochs ([https://emilwallner.github.io/html/250_epochs/](https://emilwallner.github.io/html/250_epochs/)) the AI just came up with busted HTML and: penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas penas orna.

</comment><comment><USER29> Is this a dupe of FloydHub's blog post from a couple weeks back? Markup looks very similar

</comment><comment><USER30> I agree with the need, my issue is with reproduceability and generally things that are not defined by the sketch (behavior, different screen sizes, etc). If everything were fully defined, we could just write a compiler from the high level definition to the low level. The real problem is that static 2D images are not good representations of dynamically sized interactive documents.

</comment><comment><USER31> Kind of related to this, what do people think frontend developers will be doing in five years, or, where will they migrate to as frontend (either via tools like this or like AirBnBs SketchToCode) becomes more automated?

</comment><comment><USER32> what about the converse of this? what about producing a basic set of content and letting AI taxonomise or organise it and then create a design based on design models. It could work both ways. I guess ultimately the problem will be solved both ways and AI could create entire experiences based on specific domains. Also, for those claiming this will never work i would suggest looking at some of the amazing stuff being done with AI right now. This kind of problem, including optimising and making best usage of html/css is almost tailor made for AI.

</comment><comment><USER33> Interesting outcome.

The final html code from the first example is not that bad. There's the usual problem of beginner coders of too much div wrapping that probably isn't really necessary. I'm curious if the system can also create the css. The css also suggests a beginner coder, such as an overuse of unnecessary clear classes because of the overuse of floats for layout. Or having extra class names for things that are easily handled by a parent class reference, such as a "last" class on the last li in the list. Although, it appears the css is just a template obtained online. More on that later.

The second example using bootstrap is a soft failure in my eyes. Although the html does render correctly in the browser, which is because browsers do their best to render crappy html, the code is rough. The main problem is it decided to render the head element as a header element. Compared to the first example I'm shocked that this is the generated output. The usage of bootstrap does pose an interesting thought in that the content section of the html is more precise than the first example.

My reaction to this is it's a decent try at generating a website based on very strict rules assuming that more than half of the website creation process still requires a human to complete. For example, I could see this working quite well if one were to design your mockups strictly be bootstrap, or a template, and provide that css beforehand. If the mockup is custom outside of the template/bootstrap css then it'll have to generate that css itself. Which I think I'm more curious if that's possible. Generating html is easy as you can establish ground rules of "use this series of nested elements for this situation" and so on. The examples provided could just as easily be created by a drag-and-drop system that allows a non-coder to build a basic website. For that matter, use a markdown to bootstrap converter and train your writers/editors on the bootstrap basics and off you go.

But it sure did look like a fun learning exercise. As a front end dev, I'm not worried over my future and would be curious to see where it goes.

</comment><comment><USER34> Looking forward to this being a photoshop plugin.

</comment><comment><USER35> Now we just need it to do the javascript ...

</comment><comment><USER36> Up next, an AI for creating paintings and art and Sistine Chapel ceilings.

No. This will never be a thing. It will be copycat pages, never anything unique.

</comment><comment><USER37> The really useful AI would be to take business data or workflow and generate layout and styles to eliminate the hand made mockup stuff.</comment>


Burning Man Gets an API - <AUTHOR> http://radar.oreilly.com/2009/08/burning-man-gets-an-api-and-a.html

<comment><USER2> @fnid ... anyone who's been to burning man more than a few times knows this idea of isolation and 'noone watching' are an illusion, and gave them up a long time ago. The appeal of burning man is Radical Self Expression, for some that's tech driven for others its not, chose your own way.

<comment><USER3> Just FYI, there's a "reply" link below each comment to avoid this @-symbol pseudo-threading.

<comment><USER4> It appears that not every comment may have the reply link for some reason.

<comment><USER3> I believe that comments at deeper levels (more than 5-6 levels) have the reply link not show up for a certain amount of time, which is a relatively recent change. Even for those, I've found that if you click on the "link" link for that comment, you can usually find the reply link on the resulting page, if that makes sense.

</comment></comment></comment></comment><comment><AUTHOR> Link to API docs: <http://earth.burningman.com/api/docs>

</comment><comment><USER5> This is cool for the technology, but part of the appeal of burning man was its isolation. You were there and nowhere else. You were concentrating on your surroundings and immersing yourself in the art and the culture and the environment.

Of course another part of the appeal was that no one was watching. With these technologies, that's no longer the case. The isolation is gone. The appeal is waning.

<comment><AUTHOR> I think it probably doesn't make sense to go to an art festival with 50k people that is covered by most major news outlets if you're looking for isolation, but I do understand your viewpoint. There is something special about being immersed with the community and artwork, but in my opinion, earth.burningman.com makes that better, not worse.

The BM-API is designed to add to the art, not take away from it. It's all about remixing and reusing to create something new and unique. How about that for radical self expression?

</comment></comment><comment><USER6> I have mixed feelings but I still contributed a couple of apps :P</comment>


IBM's Jeopardy-playing machine - <AUTHOR> http://www.networkworld.com/news/2010/021010-ibm-jeopardy-game.html

<comment><USER2> I for one welcome our game-show-playing overlords. (can it be Slashdot time?)

</comment><comment><USER3> What successor to Deep Blue does this article discuss?

<comment><USER4> "Watson"

From article: The games are played at IBM's "Watson Research Center" in Yorktown Heights, N.Y. ... about the size of eight refrigerators -- is seen behind a glass window while the two human contestants are at podiums.

<comment><USER3> Thanks. I already had the answer in the title " IBM's Jeopardy-playing machine".

I was just providing the question.</comment></comment></comment>


Ask HN: What are the best resources for learning modern 3D graphics? - <AUTHOR> I've been out of the 3D graphics game for many years and would like to pick it back up. Things have moved on a lot so I'm looking for a good book on modern 3D graphics and the state of the art. <comment><USER2> When you say "modern 3D rendering", do you mean modern native APIs like Vulkan, Direct3D 12 and Metal? In that sense, modern GPU programming becomes about scheduling and co-operative buffer management, along with writing programs to be parallel. There's no great guide for this to my knowledge.

If you mean everything above the graphics API, e.g. modern lighting and shading techniques, there is a wide range of choices. PBR-inspired material response models are now dominant, and I recommend Naty Hoffman's slide deck as an excellent overview of the subject [0]. I can go into more details here if wanted. Haines's Real-Time Rendering is a pretty good reference. Get familiar with math, geometry and trigonometry. I recommend "3D Math Primer for Graphics and Games" by Parberry and Dunn [1] if you need a refresher.

[0] [https://blog.selfshadow.com/publications/s2015-shading- cours...](https://blog.selfshadow.com/publications/s2015-shading- course/hoffman/s2015_pbs_physics_math_slides.pdf) [1] [https://www.amazon.com/Math-Primer-Graphics-Game- Development...](https://www.amazon.com/Math-Primer-Graphics-Game- Development/dp/1568817231)

<comment><AUTHOR> Thanks for your recommendations. I'll probably be using metal or vulcan for most of my work so I'll need to get an overview of those (I last did graphics work with OpenGL back in the late 90s), but I really want to get an understanding of all the fundamentals - your links will be super helpful.

</comment></comment><comment><USER3> For rendering rates measured in frames per second, maybe check out "Real-time Rendering", currently on its 4th edition. [https://www.realtimerendering.com/](https://www.realtimerendering.com/)

For rendering rates measured in seconds per frame, consider the "Physically Based Rendering Textbook", currently on its 3rd edition. [https://www.pbrt.org/](https://www.pbrt.org/)

</comment><comment><USER4> Lots of people here are recommending "Real-time Rendering" by Haines. While an excellent book, it goes into a ton of depth and will be very difficult to read cover to cover. Many topics are irrelevant for someone new to graphics.

A much shorter book with breadth is "Foundations of 3D Computer Graphics" by Steven J. Gortler.

</comment><comment><USER5> For an overview: Real-Time Rendering 4th edition by Haines et al.

For advanced techniques:

\- GPU Pro and GPU Zen series (ed. Engel)

\- Ray Tracing Gems (Haines et al.)

\- Unreal Engine tutorials and source code for reference implentation

</comment><comment><USER6> Me too, please!

I want to build (or use) a custom 3D rendering engine that:

\+ Renders from center of screen, in clockwise spiral outward, if any pixels remain after 15ms I want to drop them (should only be peripheral, I'm OK with that in exchange for constant performance time).

\+ Can add secondary orthogonal clipping triangles to each triangle, such that the clipping edge could be defined by a curve. Imagine a hexagon (made of 6 triangles), we could easily extend a low poly hexagon into a high resolution circle just by interpolating a curve here.

\+ My goal after that is to then define an animation pipeline, where it will procedurally generate thousands of fluid dynamic simulations that it then feeds back into itself as a machine learning training set. Once it has associated these slow compute intensive simulations with the model, ideally we can swap in high-resolution smoke/fluid graphics in-game by only using a few low resolution particle "marker" calculations that then trigger substitutions for the model.

And much more.

I'm OK if this takes me 9 years to make. My target is Rust+WebGL, inspired by the really impressive work of MakePad.

I'm also willing to spend money on people who can teach me this, so please contact me if you're an expert on Shaders and low level WebGL experience.

<comment><USER7> With the first two points, it's not clear to me _why_ you want to do that. If the reason is performance, I suggest you should first learn how to program GPUs, then think about it again. It'll be more obvious what you can and can't do efficiently.

> Renders from center of screen, in clockwise spiral outward, if any pixels > remain after 15ms I want to drop them (should only be peripheral, I'm OK > with that in exchange for constant performance time).

I suppose you could split up your CPU-side render calls into segments and drop the ones that occur beyond what you measure as 15ms.

However, this means that you need to wait for the GPU to finish work after each segment, which has some overhead. It's probably better to figure out how much you can fit into 15ms ahead of time and then submit all that in one go.

> Can add secondary orthogonal clipping triangles to each triangle, such that > the clipping edge could be defined by a curve. Imagine a hexagon (made of 6 > triangles), we could easily extend a low poly hexagon into a high resolution > circle just by interpolating a curve here.

This kind of variable-length output problem is something that GPUs aren't very good at. You could do it with Geometry Shaders, but those tend to perform poorly and aren't available in WebGL (or Apple Metal).

It might be better to just submit a sufficient amount of vertices, which you can analytically displace, so for example you don't have to supply the coordinates of every vertex on the circle, but rather calculate them from the index on-the-fly. You can also use Tesselation Shaders to amplify geometry in an efficient and view-adaptive way, but again that's not in WebGL.

Having said that, all of this "smart rendering" might not be necessary at all. After all, your goal is to train a neural network. You can probably just use an off-the-shelf renderer with off-the-shelf hardware and it'll be fast enough to not be the bottleneck - especially nine years down the line.

</comment></comment><comment><USER8> All good suggestions ;)

See also

[https://webgl2fundamentals.org/](https://webgl2fundamentals.org/)

And for state-of-the-art check out the Pixar Moana Island Scene and Disney's Hyperion Renderer (although perhaps that is on its way to becoming obsolete!)

[https://www.yiningkarlli.com/projects/hyperiondesign/hyperio...](https://www.yiningkarlli.com/projects/hyperiondesign/hyperiondesign.pdf)

[https://www.technology.disneyanimation.com/collaboration- thr...](https://www.technology.disneyanimation.com/collaboration-through- sharing)

</comment><comment><USER9> This [1] gives you quite a few options to pick a starting point.

A very good practical hands-on bottoms up [2] resource.

[1] [https://fabiensanglard.net/Computer_Graphics_Principles_and_...](https://fabiensanglard.net/Computer_Graphics_Principles_and_Practices/index.php)

[2] [http://antongerdelan.net/opengl/](http://antongerdelan.net/opengl/)

</comment><comment><USER10> Modern 3D graphics has a lot of facets, a good resource as well as engine for PBR rendering is filament and is documented here: [https://google.github.io/filament/Filament.html](https://google.github.io/filament/Filament.html)

</comment><comment><USER11> If you're okay with using a game engine I highly recommend Unity 2018 Game Development in 24 Hours, Sams Teach Yourself (3rd Edition) [https://www.amazon.com/dp/0134998138/ref=cm_sw_r_cp_apa_i_tY...](https://www.amazon.com/dp/0134998138/ref=cm_sw_r_cp_apa_i_tYRXDbYXSPAV2)

</comment><comment><USER12> If you're after an OpenGL 3+ guide [http://open.gl](http://open.gl) is pretty good!

</comment><comment><AUTHOR> Thanks to everyone for your recommendations. There's some real gems here.

</comment><comment><USER13> What I use(yes I am a beginner have only just started with most of it):

\- GPU Gems

\- SIGGRAPH

\- Real Time Rendering Book</comment>


WeddingCredential - <AUTHOR> http://weddingcredential.com/ <comment><USER2> Wow. Certainly an interesting idea! I'm curious about what the motivation was here?</comment>


Jeff Han: The inventor behind CNN's election 'Magic Wall' - <AUTHOR> http://www.cnn.com/2008/TECH/11/04/magic.wall/index.html

<comment><USER2> The technology for all of these "magic walls" was cool and all... But I still can't help thinking how much cooler it could have been if the networks had gotten someone like Ben Fry or Edward Tufte involved in designing their visualizations.

<comment><USER3> One step at a time. In big companies "glacial" is the standard speed of evolution.

</comment></comment><comment><USER4> I still pinch myself that this guy presented his tech at a conference right before I did the same(my tech)....

And now Jeff Han followed by me ..what

</comment><comment><USER5> What about the people who created the fancy 3D Capitol and the hologram of Will.i.am tonight? The Magic Wall is fun but so early 2008...</comment>


Ask HN: What's a proud hack of yours? - <AUTHOR> I'd expect many readers of HN to have a few that come to mind. I have a few, although my proudest are probably not interesting to others. A couple that might be:<p>- In the early 90s I had an Ensoniq sampler with a DB50 SCSI connector. I could not find an external hard drive for it so I bought an internal one. I used the power supply from an old computer case to power it, but connecting it to the sampler was a different story. I peeled each end of a ribbon cable by hand and soldered each used wire to the corresponding position of the DB50 connector. It took me a couple of hours, and it worked the first time.<p>- A few years ago I used the Twitter API to deduce some interesting non-public stats about Twitter's growth and user patterns: https://diegobasch.com/some-fresh-twitter-stats-as-of-july-2012<p>What are some of yours? <comment><USER2> A few years ago everyone in the office was sick of answering the phone just to buzz people into the building.

So I rigged the downstairs call-box to call a Twilio number instead of ringing the office line. The Twilio bot would then prompt the user to enter a passcode, and would then buzz them into the building if the passcode they entered was correct.

This allowed us to give guests temporary passcodes to get into the building, and allowed us to track who was coming and going (because we gave every employee a unique code to use as well). Worked pretty well, and total setup time was just a couple hours.

<comment><USER3> How did the user interact with the Twilio number at the door? Did you have some kind of device the bot ran on?

<comment><USER2> Let's see if I can explain in a way that makes sense...

The person at the door has a keypad and an intercom (for talking or hearing prompts).

The intercom box calls the Twilio number and patches it live to the user at the door. This way anything the user presses on the keypad is received by the Twilio number.

Twilio, on their end, relays the input that they're receiving from the user by POSTing payloads to a bot running on one of our cloud servers (just a regular little AWS server).

Our bot responds to Twilio's POSTSs with TwiML commands (Twilio's version of XML), which tells Twilio how to respond to the user at the door.

Twilio gets our instructions, and responds accordingly. In order to buzz someone into the door, Twilio just needs to emit a certain DTMF tone, and the callbox would unlock the door automatically.

Hope that all made sense.

<comment><USER3> Very cool! Thanks for the explanation.

</comment></comment></comment></comment><comment><USER4> I had to detect which version of an external circuit board I was talking to. Version 1 had an 8-bit read/write register at location X; version 2 had a 16-bit register there. So I wrote out a 16-bit pattern, read it back, and...

... and the card with the 8-bit register remembered all 16 bits!

Turns out that the unused 8 bits were still being driven onto the data bus, and setting a voltage there. Then, when I did the read (microseconds or nanoseconds later), the data bus still had the same voltage, and that voltage got sent to the CPU.

So I wrote a 16-bit pattern to that register, wrote a different 16-bit pattern to a different register, and then read back the first register. _Then_ I could reliably tell whether the board was version 1 or version 2.

Just a very simple thing, but it amuses me still, nearly 20 years later. (Though maybe the problem amuses me more than the solution...)

</comment><comment><USER5> Probably integrating the live-streaming api-less app Periscope into one of our products at Eventbeat.

We had a large client asking whether they could load up a Periscope broadcast of a launch party in NYC (where all the big names were) and stream it to their press event London.

My first act was just catching the stream - all JS were naturally minified, though some M3U8 files (a playlist of video URIs) were coming through and fortunately from an insecure HTTP source. This lead to warnings of mixed security in Chrome's console; we could essentially isolate the link and load it in VLC!

Because this had to be actionable by a non-programmer during the event, I hacked in some temporary functionality into the Announcement feature of Eventbeat to listen for an announcement title "Periscope", and the message was expected to be the hash of the M3U8 video stream that I trained them to grab from the console.

Turns out that on the night it worked really well, fortunately, though they ended up only using it for ~10 minutes.

Fun little hack to get going though, not sure if they're serving the video over SSL now.

</comment><comment><USER6> A 100k line text parser to add an api to a game so I could make plugins that wrap around debug messages

</comment><comment><USER7> We found a way to hack getting a meeting with people. We discovered a process to get people to want to meet with us: [http://6figuremeetings.com](http://6figuremeetings.com)

<comment><USER8> Give us a flowchart of that process then!</comment></comment>


Facebook is ruining Instagram - <AUTHOR> https://medium.com/@giuliomichelon/how-mark-zuckerberg-ruined-instagram-9733ad373bdf#.18lwizr1t <comment><USER2> So the point of the post is "Now the timeline order has changed. It's not a timeline anymore, but it's a filtered and reordered feed. I feel very sad about that and I want to explain you why." The why in that is "Now Instagram aims to be the brother of Facebook: a time sucking machine that has to steal the highest amount of my time to maximise the exposure of his ads. Now it's too hard for me follow what's happening to my friends, and I can't do it real- time anymore.".

I don't really think it makes much sense to be so sad about this, since the whole reason Instagram did this (according to them) is that people were only seeing 30% of the images on average so it just made sense to try and present the best 30% up front (explained here [http://www.nytimes.com/2016/03/16/technology/instagram- feed....](http://www.nytimes.com/2016/03/16/technology/instagram- feed.html?_r=1)). And if like me this guy follows few enough people to keep up with all the photos, then there should be no issue because I can always easily keep up with only the people I am following and see all their output. Maybe it is not real time anymore and it is noticeable to this person, but it still seems to be overstating the case.

And how is this change relevant to try to capture most of your time? It seems moreso to be about trying to give the best experience possible, confronting a problem that most people probably friend and follow way too many people to keep up with. Seems reasonable to me... Not to mention it's very dubious to claim the call came from Facebook, and not internally from Instagram following the same direction Facebook and Twitter went over time.

<comment><USER3> It's hard to tell if you've seen all the photos or not when they're re-ordered on a regular basis.

<comment><USER3> I know it's late but I wanted to add something that's been frustrating me on Facebook lately, and that is that it's almost impossible to re-find a newish post that you've seen already. The during algorithm makes you wade through tons of other posts first, even thigh the one you're looking for used to be right on top.

</comment></comment></comment><comment><USER4> The closing line:

>> It is stealing me as much time as they can. They are fighting to get my attention span, only to feed me with more ads. They are just like the television.

That's an interesting point. Seems like that can be applied to a long list of sites/apps now (or maybe it's always been like that, not sure now is any different).

<comment><USER5> Well its apt that Mark Zuckerberg gets the blame then.

There really should be a weekly game. Top score to the person with the most items added to the list -

If Mark Zuckerberg was running Wikipedia:

1\. Everybody in the world would need an account to access it.

2\. The most liked parts of a topic, lets say Linear Algebra, would appear before everything else on the topic.

3\. A "free basics" version of Wikipedia would be made available to those who can't afford cake.

4\. <please continue>

Next week we play, if Mark Zuckerberg was running Linux.

<comment><USER6> Not sure why focusing on Mark Z. It sounds to me like rather "if Wikipedia was a business"...

<comment><USER7> Excellent point! Shall we start the discussion about how some of these services should be B Corps/non-profits with a governance board? Like Wikipedia?

</comment></comment></comment></comment><comment><USER8> This post informed me that Instagram has fixed the problem that made me hate it and never want to open it (irrelevant/boring photos cluttering my timeline). The most prolific posters, often also with the lowest-quality content, would drown out all the more thoughtful posters.

Time to try Instagram again!

<comment><USER9> May I ask why would you follow most prolific and boring photographers in the first place?

<comment><USER10> Maybe because he uses it like FB, adding friends.

<comment><USER11> > Maybe because he uses it like FB, adding friends

Exactly! I've got PLENTY of friends on FB that don't get followed on Instagram. There's probably a 20% overlap at max. I keep my follow count low and start unfollowing anyone or brands that bore or annoy me.

In that way most of my media posts (which I shamefully admit are 90% my kids being adorable to me only) go to Instagram only or Instagram and shared with FB as well. I NEVER post directly to FB with media.

I think a lot of people who don't see value in Instagram think of it like they do Facebook.

<comment><USER12> > I think a lot of people who don't see value in Instagram think of it like > they do Facebook.

That's exactly the point.

(I'm the author)

</comment></comment></comment></comment></comment><comment><USER13> This type of stuff makes me wonder when humanity will treat ads just like we treat cigarettes today.

<comment><USER14> When ads start killing 30% of the people who look at them.

<comment><USER15> When an "infection" from an ad can lead to malware, trojans, ransomware, etc...

At what point does the monetary value of the damages caused by "advertising" surpass the amount of damages caused by cigs?

Will that amount of damage ever be more than lung cancer and lost lives? Who knows... but ads aren't just annoying. They are dangerous.

Just ask the hospitals that have had to run at limited capacity due to infections. (that infection was due to a tainted email... but it could have easily been from a drive-by-ad-malware... ala 30-after-30 malware: [http://www.engadget.com/2016/01/08/you-say-advertising-i- say...](http://www.engadget.com/2016/01/08/you-say-advertising-i-say-block- that-malware/) ). And it's only a matter of time until one infection causes a death...

Then expand that to our increasingly connected cars and houses...

<comment><USER16> Ads are malware to the mind.

I don't want to eat fast-food, but they will use shiny pictures, bright colors, reverse psychology, "everyone else eat burgers" tactics, etc. to make me want it.

They are little squares of manipulation.

<comment><USER17> Ah, but not everyone eats fast food, so there must be a way to resist them.

<comment><USER16> Willpower.

Your willpower is low when you are tired or in an advanced state of mind.

Take a look at decision fatigue [https://en.wikipedia.org/wiki/Decision_fatigue](https://en.wikipedia.org/wiki/Decision_fatigue)

"Decision fatigue can influence irrational impulse purchases at supermarkets. During a trip to the supermarket, trade-off decisions regarding prices and promotions can produce decision fatigue, hence by the time the shopper reaches the cash register, less willpower remains to resist impulse purchases of candy and sugared items."

We are bombarded with ads, which we discard, but every time we discard one, it tires us.

<comment><USER17> When I read that sort of thing i'd like I'm reliving the 1980s, where everyone had that sort of "they live" (the movie) paranoia that they were being controlled.

You can easily transcend all of that.

Not the fact that you're being controlled by an elite consisting of rich, well brought up white people and a media which serves them and each other.

But the day to day annoyances of adverts and supermarket deals etc. If you read books, listen to music ripped from CDs, watch movies/tvs from netflix/downloads etc, then you're going to suffer only very slight interference from ads. Certainly I see no justification for the suggestion it's "tiring" to "discard" an ad.

If you have to shop in supermakets (and you do not) then it's possible to just buy sensible stuff; fruit, veg, milk, juice, break, rice etc. You don't need to wander down the colourful aisles and pay over the odds for this seasons exciting "as seen on tv" junk foods. It's hard to imagine any self-respecting HN reading struggling to understand which size/brand of some product is the cheapest. It's not remotely taxing to do this, and mental activity keeps your mind fit and staves off dementia. It has no consequence on willpower whatsoever. In any event, a lot of shops in the UK have no "candy" by the "cash register" because it annoys parents who have to get their kids to stop screaming for it.

<comment><USER16> > It's hard to imagine any self-respecting HN reading

Exactly, but most people are not HN readers.

I've added countless ads to websites, added countless trackers, implemented countless marketing emails. Of course I am aware of what's happening behind the scene.

Most people are going to be watching TV and be bombarded by ads. They are then going to go to the supermarket, and be bombarded by packaging. They are going to listen to radio on the way to work and be bombarded by audio ads, with some nice billboards on top.

Every day, we are trying harder and harder to customize our ads to be more effective toward users. It's not paranoia. We have "loyalty" cards that track all of our users purchases which we analyse and use to send targeted ads. We are working our best to beat the mind's "firewall" to inject our "malwares" into the mind of the consumers.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Just stop using the app; lots of people I know have already stopped using Facebook. I don't even have it installed on my phone anymore.

<comment><USER19> At least on iPhone, the web app is less resource-hoggy and just as featureful.

Most of the social events I go to are now typically organized via Facebook; the non-FB people require a separate email which is an extra step that is not taken 100% of the time.

<comment><USER20> >an extra step that is not taken 100% of the time.

IMO, that's often a feature not a bug.

<comment><USER17> Yeah, I used to think that way. Thing is, while you're sitting at home feeling superior because you don't use that horrible mainstream website that all those terrible peasants are using and would stop using if only they knew how bad it was and how it's all about the money, your friends are all out there having fun at events they've organised on facebook and not quite ever got around to emailing all the bold, independent people who are too good for it.

</comment></comment></comment></comment><comment><USER21> I find it strange that they don't simply allow two streams: the reordered via algorithm and the timeline.

Introduce the new thing as a cool new beta product that people can try and after a certain amount of time switch it to default, but still allow the old version. Then wait until a majority switch over and cut off the old version.

<comment><USER22> Facebook "does" this and I put "does" in quotation marks because even when I change the newsfeed sort order to "Most Recent" I still see posts I've already seen from hours ago jumbled in with things happening more recently, and if I leave the page and come back, or merely hit the refresh button I'm back to "Most Popular".

Combine that with the ever annoying problem of leaving the page, suddenly seeing something interesting, hitting the back button and being presented with an entirely different order of sorting news items forcing me to go digging through my friend's timeline on their actual page ....

I guess what I'm saying is I don't trust them to not fuck up two streams on Instagram the same way they've done it on FB: to the point of being completely useless as a dichotomy.

</comment></comment><comment><USER23> And here I thought Instagram was an actual case of the acquirer letting the acquired product be fairly hands off.

Are there _any_ examples of happy acquisitions? Oculus?

<comment><USER24> How do know this is not purely an Instagram decision? If Instagram usage data demonstrated that most users only looked at 30% of the timeline, then it makes sense to optimize for the most active/engaging content.

</comment></comment><comment><USER25> It's not filtered.

It's reordered but not filtered.

If you keep scrolling you will see everything posted that you haven't seen since the last time you checked.

It's not even bad.

</comment><comment><USER26> This is why I stopped using Facebook. The feed became non-deterministic and unpredictable. It felt manipulative. I don't need a mediated experience, thanks.

<comment><USER27> Not to mention the constant bombardment of "Trending articles" that you can't even block even with a good Adblocker (so far as I've tried)

</comment></comment><comment><USER28> All of these shiny social network websites are there for profit. They play nice to grow and then they will squeeze as much profit as they can from users.

What did you expect is going to happen? Why would you invest so much effort and emotion into growing a thing that you can be 100% sure will eventually try to consume you.

If people want social media that does not feed on them, they have to start using p2p, decentralized social apps. Not like Diaspora (federated), but truly p2p, where each user contributes resources and there's no need to support scalability engineers maintaining state of art datacenters.

[http://twister.net.co/](http://twister.net.co/) [https://zeronet.io/](https://zeronet.io/) [https://www.ipfs.com/](https://www.ipfs.com/) [http://www.synereo.com/](http://www.synereo.com/) [http://maidsafe.net/](http://maidsafe.net/)

Somewhere there or in something similiar is our holy grail: social networking by users for users.

</comment><comment><USER29> When you have a product you give away for free, it's always a challenge to find new and inventive ways to pay for it. Ads are one way so I don't begrudge FB for tweaking something I don't have to pay for if it means they somehow make some money on it. I like using it and find it pretty useful. I think it's just going to impact buyers of ads because they'll likely see their numbers dip as more people abandon Instagram for something else like Snapchat. Users are fickle. If you start messing with something they're used to eventually they'll just find something else to keep their A.D.D. in check.

</comment><comment><USER30> The changes are a natural progression towards a curated experience. You may not like it but I would argue it does not 'ruin' instagram; just makes it a more controlled experience (which many do prefer).

<comment><USER31> But they aren't asking people which one they prefer. Some GM or product manager somewhere has goals to "increase engagement" which is probably naively defined as scrolling or clicking more. They need those metrics to go up to sell more ads.

People's opinion that Instagram is 'ruined' is completely valid. Just because the 'average' experience ticked up doesn't mean that you're making it better for everyone. This is a classic case of managing to the average. The desires of the people who are most passionate about Instagram are being ignored in lieu of hitting quarterly numbers.

This is why it's important to deeply understand your users qualitatively as well as quantitatively. You can't A/B test your way to a great product.

</comment></comment><comment><USER32> This algo will show photos with more likes on top. I wanna see photos from people and not this hashtagspam pushed crap in my timeline. Instagram fails at catching spam all the time. More likes = more views = more likes. The same problem facebook has right now. I wanna see pics of my follower and not only the "pages" with photographic skills + photoshop + hashtagspam.

It's getting less social and more like magazine-subscription of channels.

</comment><comment><USER33> I agree that FB and Instagram have gone downhill as they ramped advertising, but isn't that a well-understood part of the story?

My solution is to use them less.

<comment><USER12> > My solution is to use them less.

Good point. Probably my problem (I'm the author) was to get too attached to the Medium. I idealized it.

</comment></comment><comment><USER34> Facebook's algorithmic news feed is why my feed is full of politics, when if I actually visited people's profile pages individually, that's not really the case. There are all these non-political posts that just don't show up in my feed.

Real time is better. Don't guess what I would prefer to see. Let me filter it myself.

</comment><comment><USER35> How is this Zuckerberg's fault? Where was the Product and Design leads on this implementation? I see everyone liking posts from them on Medium but suddenly they are absolved from changes that irk people?

<comment><USER36> I guess you are not familiar with the phase "The buck stops here" popularized by Harry S. Truman.

</comment></comment><comment><USER37> So what is chronological order anyway? What time stamp do we order by? Is it when it was posted? The last comment? The last like/reaction? The last interaction by someone in our network?

<comment><USER38> The last content determined to be most likely to make the most money by displaying to you.

</comment></comment><comment><USER39> Never got into Instagram, never got why Facebook bought it, never got why would people use it, and not Google Photos, Flickr, Facebook Photos, or the million others... Oh, filters, right!

</comment><comment><USER40> I guess the same thing (or other things you don't like) won't happen if IG is still an independent company.

</comment><comment><USER41> yyaawwn people also thought Facebook was ruined when they stopped only accepting edu emails

</comment><comment><USER42> When you alter the timeline, it's no longer a social network.

</comment><comment><USER43> I'm really tired of reading rants and opinions on Medium.

In any case it sounds like if there's a huge drop-off of users Instagram can very easily address the issue by setting a sort by option in the settings.

<comment><USER41> tired of it too . just another platform for tumrblr people who are grownup to channel their narcissism. And most of the articles are of low quality, with unnecessarily large font and stupid pictures that makes me feel like I'm in 5th grade again.

<comment><USER44> I'd argue that hackernews uses a font that's too small and doesn't have enough images — but I think your other criticisms are spot on.

</comment></comment></comment><comment><USER45> Its all about the money.

</comment><comment><USER46> Copying & Pasting code is not innovation. It worked when they copied and pasted myspace but that will eventually stop working for facebook.

<comment><USER47> None of that code as copy/pasted.</comment></comment>


Show HN: Send books to your Kindle through Dropbox - <AUTHOR> https://kindlebox.me

<comment><USER2> Interesting project.

I just email them to my kindle thought. [http://www.amazon.com/gp/sendtokindle/email](http://www.amazon.com/gp/sendtokindle/email)

<comment><USER3> This project seems to make this much easier especially if you dumping multiple books or sharing books on dropbox already with friends

</comment></comment><comment><USER4> Interesting--I was considering getting a Kindle but wasn't sure of an easy way to get my non-Amazon ebook collection over to it. This looks pretty simple given I already have them in my Dropbox account which I use on my iPad to push to the iBooks app.

In terms of the Kindle's ability to handle PDFs, does it allow for resizing the page? Or is it pretty important to get the PDF page sizes "kindle-sized" to have a hope of reading it without a magnifying glass?

<comment><AUTHOR> Hey, thanks for the interest!

In my experience, I've found that the Kindle can convert PDFs pretty well as long as there is extractable text that's not too weirdly formatted (as a cursory test, try viewing a PDF and highlighting words. If you can do it, it's probably okay to convert). Otherwise, it's true that you'll probably run into sizing issues :(

</comment></comment><comment><USER5> Is this like creating an ifttt.com recipe, you look for files in a folder and email them to the Kindle?

[https://ifttt.com/recipes/17578-if-stored-in-kindle- dropbox-...](https://ifttt.com/recipes/17578-if-stored-in-kindle-dropbox- folder-then-send-it-to-your-kindle)

Kindlebox is a nicer way to do it if that is all someone wants, something I would send to my mom instead of teaching her how to use ifttt.com.

<comment><AUTHOR> Similar idea, but not implemented with IFTTT (it uses the Dropbox API directly). Thanks for the kind comments! :)

</comment></comment><comment><USER6> Stopped at step #3 of the activation process.

Amazon took me to my country's Amazon site. From there, the snippet button did not work. Also I could not get the precise action behind: "pick your Kindle devices, and you're good to go". So I stopped right there.

<comment><AUTHOR> Hey, sorry to hear you're having trouble.

The snippet scrapes the Amazon site for information about your Kindle devices. It's possible that it's failing because of different Amazon UIs depending on the country. There should be a message letting you know that it failed.

Make sure you're on the Amazon site when you click the snippet. If it's successful, there should be a list of devices that you "pick" by clicking the names. Once you click the "Activate Kindlebox", that should be it.

Please email me at email@example.com if you're still having trouble!

<comment><USER7> Hi, Unfortunately I've got the same on the amazon.co.uk (UK). there doesn't appear to be anything popping up to say that anything is wrong either.

<comment><AUTHOR> Hey, thanks for the heads up. It's likely because I was matching the host string with "amazon.com". I just pushed a change that should fix that, so you may see the modal as you should now. It's possible there are still errors since I'll need more time to figure out how to scrape other countries' Amazon pages.

If something goes wrong, we can continue this over email at firstname.lastname@example.com. Thanks!</comment></comment></comment></comment>


Snow Leopard is Apple's Vista - <AUTHOR> http://www.morethancurious.com/3

<comment><USER2> From the moment Bertrand Serlet first started talking about Snow Leopard many, many months ago, he said it "hit the pause button on new features", and was intended to make improvements primarily under the hood.

Apple didn't just "realize" this at some later time, as implied by the article.

The difference with Vista is that Microsoft had created half a dozen overpriced variants of an operating system with changes that primarily benefited companies (e.g. Microsoft itself and DRM proponents), not users, but was trying to sell it as an OS that users would want.

The last line of the article is also insulting...to think that Apple is in any danger at all of not continuing to offer a "compelling alternative to Microsoft"?</comment>


Efficient Neural Network Loss Landscape Generation - <AUTHOR> https://nextjournal.com/r3tex/loss-landscape <comment><USER2> This brings a wide spectrum of the Julia stack together and underlines the inherent interoperability of Julia solutions:

Flux - Elegant Machine Learning Stack

Makie - High level plotting on the GPU

CuArrays - GPU arrays without code changes

WebSockets - Websockets protocol in Julia

WebIO - Simple abstraction for displaying and interacting with content

Nextjournal - Making this reproducible online

</comment><comment><USER3> Cool article!

In Makie, you can efficiently put a label on a slider by using

`sliderplot, observable = AbstractPlotting.textslider(range, label, start = startvalue)`

where sliderplot is the actual Scene object and observable is the value of the observable.</comment>


Welcome to Mound, MN: home of the $249.99 DSL broadband plan - <AUTHOR> http://arstechnica.com/telecom/news/2010/04/welcome-to-mound-mn---home-of-250-data-tiers.ars

<comment><USER2> I used to want my hometown to get the Google Fiber trial. Now i'm hoping that Mound, MN wins. :P

<comment><USER3> That Willy Wonka-style competition drove me up the wall.

The county I'm in turned down a chance to get 10x matching funds from the federal government and decided to buy a ticket in the Google lottery instead.

</comment></comment><comment><USER4> 5... GIGS?

I probably sync that much back and forth in source code garbage and sample data sets between work and my house. Not to mention the fact that all of my video consumption is streaming now (Amazon or Netflix via Tivo).

That's... wow.

</comment><comment><USER5> My friends make fun of me for paying $120/month for 6M Speakeasy broadband.

But guess who never gets letters saying that he's using too much bandwidth or to shut off his SSH server.

</comment><comment><USER6> This is one of the reasons I left Verizon--I was in a rural area they were selling off to Frontier and I found out plenty of rumors about them. Plus, performance intermittently dropped for stupid reasons (rumors were, Verizon was taking out all the "good" equipment so they could keep it).

</comment><comment><USER7> I just checked my Tomato router and so far this month (posting this on 4/15/10) I've used 8.99 GB. I hope Comcast's secret rate limit is < 20GB/month.

      Date     Download  Upload   Total
      2010-04  8.21 GB   0.78 GB  8.99 GB

<comment><USER8> An offtopic questinn, where do you save your bandwidth data in your Tomato router? NVRAM? It is suggested "Frequent saving to NVRAM or JFFS2 is not recommended".

<comment><USER5> People are a little too worried about read/write cycles for flash. They hear "limited" and think it means "you can't update a bandwidth counter every so often", when in reality it means, "you will need new flash after 10 years of writing to it at its full bandwidth".

</rant>.

</comment></comment></comment><comment><USER9> Out of curiosity what are costs of unlimited plans in USA and how hard is it to get those in more rural areas?

Just want to compare it to my current connection which is unlimited traffic, 460KBs down /~60KBs up for €19.99/month. (It also includes a landline which isn't in use - it's the only provider in my area and cheapest offer they have)

Edit: Wording

<comment><USER10> I live in a big city, in a neighborhood full of students. My three roommates and I pay a total of $60 a month for a residential connection with a soft cap of 250G per month. The cable company claims that it's rated for 12 megabits, but it's more like 3 or 4 in reality.

If you want an unlimited plan from my provider, you'll have to get a business connection. A friend of mine has that. He gets 50M down, 10M up with no cap for $100 per month.

</comment></comment><comment><USER11> I would read the article, but then I might feel guilty for ignoring arstechnica's ads.

<comment><USER12> If the ads load, you should feel no guilt. :)

<comment><USER11> If you ask the editor of Arstechnica, unless I'm absorbing the ads, subconsciously or consciously, I'm stealing.

<comment><USER12> No, no he doesn't. Ars gets paid when you load ads alongside a page. There's no metric that says "a person must notice and/or care about the ad for it to count".

You're more than welcome to email me if you want to talk more about it: email@example.com

</comment></comment></comment></comment><comment><USER13> TonkaToys used to be made in Mound! (Very important tidbit, I know...)</comment>


Ask HN: Are there any open source alternative to Better touch tool? - <AUTHOR> <comment><USER2> What's the issue with Better Touch Tool?</comment>


Ask HN: Why can't HN users search by author? - <AUTHOR> Is there a url hack? Only when stumbling upon an author's comments can I see their postings. <comment><USER2> [https://hn.algolia.com/?query=author:reducesuffering&type=st...](https://hn.algolia.com/?query=author:reducesuffering&type=story) (more in [https://hn.algolia.com/help](https://hn.algolia.com/help) )

[https://news.ycombinator.com/submitted?id=reducesuffering](https://news.ycombinator.com/submitted?id=reducesuffering) (as the other comment explains)

There are similar links for comments.

</comment><comment><USER3> Click on author's name. Click submissions or comments. If you know the author's ID but don't have a link, click on your own ID in the upper right corner and edit the URL.</comment>


Website of the future: what does it look like? - <AUTHOR>

I am looking for examples that illustrate cutting edge innovation in the following areas: website navigation content community customization commerce support<p>thanks! <comment><USER2> Be aware of a problem here. If you go back several years and look at sites people defined as "cutting edge" or "futuristic", they were mostly gawdy Flash-ridden wastes of space that were certainly unique, but ultimately unusable and hard on the eyes. Even if you go back just a year, Adobe's Flex was being touted by many as a way of the future - especially in e-commerce - yet take a look at Amazon now. It's evolved, but not in that way.

Looking at the high-end fashion catwalks to predict consumer fashions for the next decade doesn't work. So it goes with Web design. Remember that the future is made of lots of tiny changes compounded - not large sweeping innovations.

<comment><USER3> 2advanced.com; when I was a young chap I'd spend hours just mulling over Eric Jordan's stuff.

<comment><USER4> So I'm not the only one! Ah to be 16 again... everything flashy was good.

</comment></comment></comment><comment><USER5> I'm a big fan of the 'grunge' trend we're starting to see

[http://www.smashingmagazine.com/2008/01/29/grunge-style- in-m...](http://www.smashingmagazine.com/2008/01/29/grunge-style-in-modern- web-design/)

</comment><comment><USER6> With mobile devices growing - I think the website of the future will have a strong component on accessibility from various screen sizes. Another feature that will become important is having offline mode/app to enable data access, synchronization, etc.

</comment><comment><USER7> Aza Raskin is developing some really cool technology over at Mozilla, dealing with things such as user interface and intuitive design. I expect that some of what he is producing now will be standard within the next couple of years, for example Geode, which was discussed yesterday (<http://labs.mozilla.com/2008/10/introducing-geode/>).

</comment><comment><USER8> _A short while back, the folks at Adaptive Path invited me and the gang at Unit to contribute to a cool project they had in the works for Mozilla Labs. Our part would be to design how The New York Times sports page would look a few years into the future._

<http://www.andyrutledge.com/times-new-omen.php>

</comment><comment><USER9> I've got some innovation going at <http://www.nestedguis.com>. (update: previous link was wrong)

Louis Gray blogged about it.. [http://www.louisgray.com/live/2008/09/will- future-informatio...](http://www.louisgray.com/live/2008/09/will-future- information-consumption-be.html)

</comment><comment><USER10> My top sites of the moment that to be are trend leaders:

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

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

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

</comment><comment><USER11> the website of the future will be a wiki. Simple navigation, lots of content, but based on real impressions of your company by customers, partners etc. instead of propaganda from the company.

<comment><USER12> Do you honestly think that's not a terrible idea? Replacing your company website with a wiki?

Maybe there's a tiny minority of companies for which that would work -- they'd be small, obscure, have a loyal fanbase, and almost never piss anyone off. For anyone else it's a disaster -- all you need is one disgruntled customer (or fanboy for the competition) with too much time on his hands.

<comment><USER13> It's not just the "control content from one bad seed" issue. Wikis are great to solve some problems, deliver some content, etc, but they're not the answer for everyone. There are different levels of transparency for us to explore...

</comment></comment></comment><comment><USER14> apple.com (navigation, commerce)

amazon (especially for nagivation, also commerce)

facebook (for community)

nytimes (for content)

backpack</comment>


Facts about Banner and Display Advertising - <AUTHOR> http://www.adpushup.com/ad-revenue-optimization-blog/web-banner-stats/

<comment><USER2> CTRs may be low, but the post almost ignores impressions, which are much harder to quantify but still having some value[0]. Of course, with the proliferation of small devices, ad plug-ins, and the general 'banner ad blindness' of a population that is increasingly familiar with the Internet, it's all probably still dropping in value.

I disagree with those who assume it's all useless because they've never personally clicked on any ads ( _" After all it's a $16 Billion market. Nobody would spend that much money, without any realistic returns"_), but the trends are also pretty clear. Sometimes I feel like retargeting is the last great scheme to squeeze more conversion out of the whole model. But there will probably be at least a couple more...

[0][http://econsultancy.com/us/blog/10487-view-through- attributi...](http://econsultancy.com/us/blog/10487-view-through-attribution- exposed)

<comment><AUTHOR> I agree about the impressions point. High CTR or not, the Ad is indeed shown to the user, and to look it form a totally different PoV, the low CTR ads mean relatively low CPMs (i.e. eCPM, assuming CPC to be low). If looked from a pure branding or impression perspective, this might be desirable (although I'm not saying low CTR is good for the publisher OR the advertiser).

</comment></comment><comment><USER3> At www.optimine.com we are doing some interesting stuff to address the abysmal CTR of display ads.

The key is to measure the effect that your display ads are having on your paid search ads, ie measure the "brand effect" impact on purchase decisions.

The direct effect of banners ads is negligible, but that is missing the point. Nobody clicks on a Coca-Cola TV ad, but they aren't going to stop TV ads anytime soon.

<comment><USER4> Yes, which is why using other metrics to measure performance would be better (specially offline).

Our startup is also currently building a product which will help publishers improve ad performance by using continuous testing, machine learning and optimization.

</comment></comment><comment><USER5> Are any of those statistics actually true? I see TONS of ads all the time. In aggregate, aren't I more likely to click on a banner add than be accepted to Harvard and Stanford? Or are they saying for any one display add I see, I am more likely to blah blah blah than click the ad?</comment>


Hackers Breach 53 Universities and Dump Thousands of Personal Records Online - <AUTHOR> http://bits.blogs.nytimes.com/2012/10/03/hackers-breach-53-universities-dump-thousands-of-personal-records-online/

<comment> mike-cardwell I looked at the Nottingham University leak on Tuesday. The leak actually just contained the database schema and not the contents of the database. But it also contained the URL which could be abused to do an SQL injection. I tried adding an apostrophe to one of the parameters in the URL and an SQL error was returned. That page appears to be down now. One of the tables looked like this:

      | courseCode    | varchar(25) |
      | dob           | date        |
      | email_address | varchar(50) |
      | first_name    | varchar(25) |
      | ID            | int(11)     |
      | last_name     | varchar(25) |
      | lastupdated   | date        |
      | orgnameID     | int(11)     |
      | orgnameother  | varchar(50) |
      | student_id    | varchar(25) |

Probably not _massively_ useful data. Unless you want to perform a spear phishing attack, pretending that you're the University. Then it would be very useful.

EDIT: This was the Student Union database. I'm not sure how many students it would contain. Maybe a small number? Maybe all of them?

</comment><comment> dorian-graph > If we want change we must be ready for it. the future is technology. > physical school will become obsolete.

Cute. There's an odd, and I would say silly, obsession amongst some tech- obsessed people to claim the soon obsolescence of things like libraries and universities.

It's wonderful the recent huge push and availability of online materials and courses from big universities and others, especially for those who otherwise could not attend a university for whatever reasons, but to dismiss universities as a singular blob shows a certain misunderstanding and appreciation of what they are actually for and for teaching in general.

I'd recommend sitting in on various mentoring services, other student services, practicals and other things and also to read Zen and the Art of Motorcycle Maintenance.

<comment><USER3> I agree with all that you say, but seriously, that book is the most worthless thing I've ever had the misfortune to try reading.

</comment></comment><comment><USER4> I spent a summer at one of the universities in this dump. It just looks like wordpress user info - nothing particularly sensitive about the data, and mine wasn't in it.

Edit: Looks like one of the tables has plaintext passwords. If I recall correctly, security practices at this university were horrible - <USER2> security numbers could be accessed in plaintext, and resetting a password took only a single security question without email confirmation.

<comment><USER5> My university had similarly bad security practices. Although not accessible as plain text, the social security number was used when you wanted to change personal information.

For example to reset your university email account you needed the last three digits of the ssn and your date of birth. In my case, the school somehow never got my ssn so my ssn in this case was just "0". So theoretically if anyone wanted to change my password they just needed to use "yyyymmdd0" to access it.

</comment></comment><comment><USER6> Having worked in higher ed for 10 years, some of which was wrestling with data security, it is not at all surprising the vectors that appear here.

We would spend days crafting policy, designing/implementing security at perimeter and core for business systems to prevent these types of leaks.

We believed we were largely successful. Until we realized that some professor had developed a screen scraping application that would spit out CSVs of student enrolment data (including personal data) and ship it to whomever he liked (alumni, student unions etc.). Once certain departments got a hold of the data, others felt obligated to it and a quazi-underground data distribution system was in place.

We tried to explain, coerce and beg. We used HR, unions to effect policy that they helped create to shutdown these systems, stop the professor (and his copycats) all to little or no success.

It is not mistake that I left soon after. Such amazing, but ineffectual institutions. It doesn't matter how many of these leaks occur, no accountability means no changes. Might plug these holes, only to have 3 more popup by the end of the year.

</comment><comment><USER7> So, I'm at the University of Maryland right now. All three mirrors seem to be down, so I couldn't check if my information was on the list. The article suggests this was done with SQL injection? God, I really hope my university is better than that. Or at least hashes passwords. I'd check if they did, but again, mirrors seem to be down. Sad thing is, I wouldn't be surprised. Despite the 15th best comp sci program in the nation, and ridiculous policies like "change you password to new unique password with at least 1 number and capital letter every 180 days", OIT seems useless on security. Sigh.

<comment><USER8> I haven't looked at all the data released, but for the sample I did look I didn't see a breach of a university's central records system - they were breaches of things like the university's diving club's phpbb forum.

Fairly mundane as these things go.

</comment></comment><comment><USER9> A thought occurs that if any of these universities have computer science or software engineering courses, or even infosec courses, then part of that should include the students examining and/or documenting the universities own IT systems and how they work. There would be a natural synergy between teaching success and the security and efficiency of the universities systems.

This doesn't necessarily mean that students would be allowed to alter the software, but they certainly could analyze and audit it, and perhaps provide patches in some cases.

<comment><USER10> Some people think that's problematic. They say that you shouldn't use students to replace local industries, because it's bad for local businesses. They might say that you shouldn't use unpaid students to do real work.

And there are problems with letting students have permission to run penetration tests - you have no idea if they're white hat or grey hat or black hat.

<comment><USER11> Cmon! All the High Education thing is about making Students work for their university for the time they're enroled, in exchange for knowledge, and insider's tips (yeah, i can introduce you to xxxx at ibm,...). I personnally don't know of a single PHD who didn't work (hard) for free for his director... Untill he got his phd. And even after that, sometimes, if he wants to get into research himself.

I find internal auditing, under strict surveillance to be a very good idea indeed. This could even lead to some healthy form of competition between universities, not only base on who teaches that Lisp class, or what professor/university's name is.

</comment></comment></comment><comment><USER12> its not hacking..they just got some useless information..</comment>


What makes a great API? - <AUTHOR> http://blog.programmableweb.com/2012/07/19/what-makes-a-great-api-the-five-keys/ <comment><USER2> The guide seems to approach API design from the perspective of big players. It would have been nice to point out what to focus on first for fledgling services that want to take baby steps with the right foot. Rate limiting and metrics are way less important when you're happy someone is even using your API in the first place.

In other words, what makes a good API MVP that doesn't get launched only to have to deprecate stuff soon after?

I think that'd be a far more substantial contribution to the SaaS web, since there are far more people starting out or with no API at all than there are companies with pressing demands for a thorough service, and those can more easily have someone experienced on board anyways.

<comment><USER3> If it helps, I can share a bit about that. Our API has gone from several hundred hits to several million, while its no Twitter API we are closing out our "0 - 1" phase as Peter Thiel would put it.

Probably the most important thing for a builder of a B2B API like ours to consider is that someone is requiring (read: forcing) another developer to integrate your product. Counterintuitively, you will probably get more push back from tech teams than from the business side. I understand their reasoning, I've been a software architect for many years and often had to figure out how to delicately stretch technical resources to attack what seems like a constant onslaught of new requests. How did we solve this problem? We created a GitHub account, built wrappers around our REST calls for Python, Ruby, Java, PHP and C#. Our whole goals was to create copy and paste code. Technical pushback has gone way down.

Another important lesson that they touch on is simplicity. Don't be creative or try to show how out of the box you can be on picking resource nouns. Accepting product information? Please use apiurl/Products/id. A notable mark of mastery isn't how complicated you can make something, it's how simple you can express it.

</comment></comment><comment><USER4> Are Enterprises so lazy to build an API around their data models?

I would like to see a detailed comparison of the framework API's(say in django, Tastypie) with 3rd party managed API's. Its a great read to see the pros and cons in this context.

</comment><comment><USER5> Nice slidedeck for good APIs principles evangelisation But nothing on Policy and Terms of Use which become the main issue for developers , before good design.

</comment><comment><USER6> surprisingly little mention of the actual interfaces themselves (the API calls) and instead a lot of focus on the meat that goes on those bones.

Hanson's "C interfaces and implementations" has a lot of good stuff but some of it doesn't apply to modern APIs. anyone have a good reference that complements Hanson in the web API era?

</comment><comment><USER7> A great API is one that is fully documented and doesn't hide any API calls. One that doesn't keep changing the API calls to make sure older programs break, but create newer API calls to do new things and keep the old ones for legacy support.</comment>


Ask HN: Is Java Dying? - <AUTHOR>

What do you think the future of the Java Language would be? What's a good replacement? Would the replacement run on the JVM? <comment><USER2> The JVM is going strong and will stick around as a common platform for a variety of interesting languages for quite a while. Java the language is on the downward slope of the hype curve, but still has a huge base of existing installs so even though it is bleeding it will take a while for shock to set in. IMHO, the biggest future surprise will be how Java turns out to not be the COBOL of the future. COBOL is an antediluvian artifact that got the job done but lingers on in constant maintenance mode until enterprises bite the bullet and spend capital to do a wholesale replacement of the legacy mainframe system. The JVM is what will eliminate this refuge and last bastion for Java the language; the fact that other languages can run on the JVM and interface with old Java code means that incremental replacement is an option, and that option will be exercised more and more until the Java language becomes a distant memory.

</comment><comment><USER3> No, it's not dying. The installed base is _huge_ \- it's currently the most popular language on <http://langpop.com> . Perhaps, if Oracle messes things up enough, its rate of adoption for new projects might conceivably slow a bit.

<comment><USER4> Indeed, there's no way you could say its _dying_.

That said, Oracle has rolled a grenade into the greater Java ecosystem and we're waiting to see what happens next. If "Oracle messes things up enough" I suspect we'll see a lot more than a slow down in new projects, or at least the sort we're interested in.

</comment></comment><comment><USER5> I've been working with Java since '98. I worked for Sun Micro, then Netscape, then the Sun-Netscape alliance, then iPlanet. I also worked for Oracle before I joined Sun and would have lost a lot of money on the wager that Oracle would buy Sun one day.

Java is not dying. The enterprise footprint alone will sustain the community (and developers) for years. And there is still plenty of innovation rolling out (SpringMVC is a good example) and I see some great angles for VMWare.

That said, I finally broke down and started learning Ruby last week (after the Oracle litigation announcement). All I can say is...wow. In less than a week, I was pretty comfortable with RoR (OO and MVC felt right at home). Over the weekend, I built an app that I'm actually proud of and planning to share with the HN community for feedback this week. The community is friendly and I'm blown away by the ecosystem (Heroku is ridiculously great).

Bottom-line: I built my home and fed my family with Java over the past decade and feel almost a sense of loyalty. I thought I was pretty fast in Java, but my productivity is up in RoR, even with the learning curve. I've loved every minute and have decided to build subsequent projects using RoR unless I run into some type of crazy roadblock along the way.

The early adopters that embraced Java and pushed it before it was proven (.97b anyone?) are the same people that love trying new things now. That other options are so enjoyable is a bigger threat to Java than Oracle. Oracle might have just provided the nudge people needed to see for themselves.

</comment><comment><USER6> This discussion often happens around JVM languages or dead-end projects that will need to be maintained until the end of the universe. If that's all that remains, then yeah, I'd say Java is dying, because people won't be actively writing new, interesting code in Java.

A couple of projects that suggest Java may not be dying (quite yet) are Roo and GWT. Roo is a spring-based framework that is very Rails-esque in terms of getting a web application up and running very quickly, though I haven't looked through much of the code. GWT is (as almost everyone knows) a very powerful framework for creating rich internet applications. It's a really major departure from page-based technologies.

Aside from that, there are still other projects like Guice, Gin, Struts 2 (and other MVC frameworks), ORM type work, and so forth (many of which are often used with GWT and are rolled into Roo).

While I've looked into these, none of them are enough to make me want to make a switch (back) from Ruby to Java programming. But I do think there's still enough going on there that I really wouldn't say Java is dying as a language that people use to build web applications (and I don't mean purely as a JVM or legacy code thing...) Some of the top innovation is still happening in Javaland.

<comment><USER7> Theres also grails, but even that is a bit clunky at times. I was ready to jump ship to Ruby land and then I discovered Play framework (www.playframework.org). It goes against many Java conventions but thats a good thing! Development time definitely lot faster! The only downside is that the community around it isn't quite as big as the other frameworks (hopefully that will change!).

</comment></comment><comment><USER8> Not a chance, though I wish it would.

It was born in sin, marketed beyond merit, and has a horrible culture of bureaucracy and overhead.

</comment><comment><USER9> We use JRuby with a bit of Java. The JVM is a very interesting place to be, with relative safety in the language and runtime, C-ish performance, and access to lots of lovely libraries. And you don't have to program in Java to use it.

Here's how we went from Ruby to JRuby + Java: <http://bens.me.uk/2010/jruby- in-practice>

</comment><comment><USER10> We're writing our startup using Java and Google App Engine, so we're obviously stuck in the middle of something. But in the end, we're confident that Java is giving us the best performance for what we're doing (big data), and no matter what happens between Oracle and Google, there's still an Open Source programming language that can't be taken back.

</comment><comment><AUTHOR> Yes, that's what I am thinking, with Larry's style of management/acquisition style, the future is uncertain for us Java Developers

</comment><comment><USER11> Java is now deeply-rooted in enterprise software, and in this field, once a project have been developed, radical technology changes occours on a 10-year+ basis. You won't believe how many big businesses still relies on Cobol development for manteniance. So, imho, Java isn't going away anytime soon.

</comment><comment><USER12> Some information at:

[http://www.michaelnygard.com/blog/2010/04/the_future_of_soft...](http://www.michaelnygard.com/blog/2010/04/the_future_of_software_develop.html)

"The Future of Software Development"

</comment><comment><USER13> I had dropped java/j2ee since 2006 and moved to ruby and erlang community. I hated the deployment of j2ee application and the dependencies of jars, i known ant/maven would solve the problem somehow, but i enjoy the way ror/otp does

</comment><comment><USER14> It stands pretty strong. Lot of enterprise softwares are Java based. Most schools teach this as their main language. So, at least I don't see it happening anytime soon.

</comment><comment><USER15> Yes! Still there will be a remaining huge code base to be maintained.

</comment><comment><USER16> dying? no. growing? no, not really, either. or, at least, nowhere near the pace that it had to get to where it is now.</comment>


Free Online Courses - <AUTHOR> http://www.free-classes.com

<comment><USER2> Good work! I see that you are collecting information from exisitig free courses out there & organizing it in one place. Right?

<comment><AUTHOR> That's correct. The goal of this site is to aggregate all free courses available on line to one place. It has courses from MIT, Harvard, UCBerkeley, Yale, UHouston, etc.

</comment></comment><comment><USER3> Nice work Mike!</comment>