Retro game engine for developers that enjoy creating games like it's 1997 - <AUTHOR> https://github.com/klaussilveira/qengine <comment><USER2> 1997 was exactly the Year when the game Myth The Fallen Lords[1] was released. 'til today I think is the best game ever made. Please if there is anyone who works for Bungie or whatever company owns this abandoned game, whose community have worked hard for years to keep alive, without any help from the Owner, even reverse-engineered the server, because they prefer to keep the game dead and it's tomb abandoned then release the servers code, Please guys just Open Myth already, It's been 20 years! It is considered "retro" now, did you read that headline? The community must still be alive, even. seems that there is still a multiplayer server running. And it is a damn good multiplayer game to play even today, with very good chat interface for team communication. Maybe the best I ever saw in a game. Imagine what was this for a youngster in 97 to hear the sound of the 3.6 speed Dialed Internet Conection, after a long minute of making weird sounds, finally makes the rrrrr sound that you knew it means you are on the Internet and can Play this unbelievable thing...back then it was jaw-dropping.

1- [https://en.wikipedia.org/wiki/Myth:_The_Fallen_Lords](https://en.wikipedia.org/wiki/Myth:_The_Fallen_Lords)

<comment><USER3> You're barking up the wrong tree with Bungie - you need to contact 2K Games...and good luck on that. I know some people who have tried, both with Myth and with Oni.

<comment><USER2> Ok , thanks for that information, sincerely. Let's find some friendly agent to assume control of this 2K company then. Thank you. Actually, when there is Unity3D around, what is the point of them keeping it closed. They could still keep the Movie and Art rights, if someday Hollywood wants to make a movie of it or whatever dream they have of milking it somehow in the future. They might very well loose the value of the Art and Story itself when someone makes a similar Unity3D game with a passable Art and Story that buries their value, and now it buries for real. Can't understand what is the point of their reasoning keeping it frozen.

<comment><USER4> Take Two is the owner of 2K Games. Take Two has a USD 12.4 billion market cap. Take Two refers to 2K as a principal office. Quite the endavour for your friendly agent. Best bet would be to found a startup that greatly enhances revenue on old games by, say, automatically remastering them and them pitching to Take Two. You can't clever your way around 12 billion.

Another thought: firms this size usually have their own M&A-team. Obviously you could buy the IP at an offer they can't refuse (but you probably couldn't Kickstart). Might sound snarky but there doesn't seem to be a market for old IP in games, which suggests they will not take your idea serious for 'normal' market value. That might be pretty economic. Big game producers need people playing new games, not having too much fun with (better) games from the old days. The hedonistic threadmill is what makes their firm the current size. Don't distort that balance by opening up the retro market.

<comment><USER2> I see. Thanks. So they kill it, cut out it's head and bury on a salt desert so people will forget it exists and buy their new game instead. Still feels that something isn't quite right in this being the only reason, it's strange. But yeah, you are right, would need to call more than one friend to get 6B USD just for fun money, to risk on the game industry because of a personal caprice :D Your ideas were better, thanks.

<comment><USER3> They are big enough that they don't care unless you offer them _a lot_ of money or you know just the right people to talk to and have the correct connections.

</comment></comment></comment></comment></comment></comment><comment> git-pull This is a cool project!

\- CMake, yay! These make generating build files for a variety of platforms (even Windows) a breeze. It also works with code completion stuff (CLion IDE, KDevelop both have CMake-based projects)

\- I like how it splits stuff up as well ([https://github.com/klaussilveira/qengine/tree/master/src/gam...](https://github.com/klaussilveira/qengine/tree/master/src/game)).

\- As for vendorizing SDL2, there is an opportunity for optimization: The shared libraries and header files can be scanned through CMake scripts. Example: [https://github.com/tcbrindle/sdl2-cmake- scripts](https://github.com/tcbrindle/sdl2-cmake-scripts).

\- I see the .clang-format file, nice! (This is for clang-format: [https://clang.llvm.org/docs/ClangFormat.html](https://clang.llvm.org/docs/ClangFormat.html))

Unfortunately, license is going to be a real barrier to most game developers. The ironic thing is this engine includes SDL 2 which prides itself on being on a permissive license. ([https://youtu.be/MeMPCSqQ-34?t=405](https://youtu.be/MeMPCSqQ-34?t=405), 6:40 to 7:30)

If it's the intention to create an open source library to be helpful as possible to developers. If it's the intention to have a library just for use in the GPL ecosystem of games (which isn't bad: OpenTTD is GPL!) then this is okay.

The reason why is a private game developer want to retain control of their intellectual property, even throughout the prototyping phase.

As for open sourcing, I'd approach it in a different way: I'd release reusable components under a permissive license (e.g. MIT, BSD, ISC, zlib, etc.) and keep any creative work product code/source files private.

Similar SDL2 framework for 2D games (I made some CMake contributions a while back): [https://oxygine.org/](https://oxygine.org/)

<comment><AUTHOR> The license can be a problem for some studios, specially ones with uncomfortable contracts with publishers. If you are in that situation, I highly recommend writing a LuaJIT integration layer.

The game code is very well separated from the engine, and qengine already removes a lot of non-generic game code from Q2. So all you have to do is delete a little bit more, write some glue code to tie in Lua, and you can write the entire game logic in a separate codebase, with a separate license. Also, you get moddability.

<comment><USER5> I think using Lua scripting like that still counts as "dynamic linking" from the point of view of the GPL.

[https://www.gnu.org/licenses/gpl- faq.en.html#GPLPlugins](https://www.gnu.org/licenses/gpl- faq.en.html#GPLPlugins)

<comment><USER6> The Lua interpreter itself would still be under GPL but the code that the Lua interprets would not since as far as the interpreter is concerned the script is data. The GPL even has a section on this:

[https://www.gnu.org/licenses/gpl- faq.en.html#IfInterpreterIs...](https://www.gnu.org/licenses/gpl- faq.en.html#IfInterpreterIsGPL)

<comment><USER5> Lua is MIT licensed. The point is that if you have a GPL game engine and use lua scripts to turn it into a full game then you also need to license the scripts as gpl if you want to distribute the game.

(As others pointed out , oif you are looking for a loophole, game assets might be a better way to go)

</comment></comment></comment></comment></comment><comment><USER7> The repo is basically Quake II's software-renderer and game-logic module merged into the engine binary. Yamagi Quake II ships with an additional OpenGL 1.3 and 3.X renderer which I'm sure could be ported over if SW was undesired.

While it's something cool to work with Quake II, its net-protocol has its downsides and I'd encourage anyone replace it with QuakeWorlds' networking as you'll run at a locked 10 Hz with the clients interpolating between the frames otherwise. This was done for easier handling of animations in single-player entities, but was regretted later (according to JohnC's own .plan files).

Quake 1 is nicer to work with in that regard. Also get used to wobbly model animations with the MD2 model-format as the precision of the vertex-animated models is very poor :)

It's also interesting to note that Carmack considered using a 16-bit MMX- powered SW renderer for QuakeWorld/Quake II (making it real cutting edge in 1997), but considering the global 8-bit palette was already in place, it would have resulted in a loss of precision of already paletted textures so it was decided against and they did it the old way.

</comment><comment><USER8> This is really cool, and I can't believe I've lived long enough to see Quake 2 be called "retro."

I'll likely live long enough to see the Unreal Engine of today called retro. I've never thought of this before, and it's wild.

<comment><USER9> Came here to say the same; it's like the first time I heard Nirvana on a "classic rock" station.

<comment><USER10> "Nevermind" is longer ago from today than "Rubber Soul" was from "Nevermind."

Time is cruel.

<comment><USER11> Holy crap you just made me feel completely ancient. I had never made that realization before.

Is this how my parents felt in the 80s?

<comment><USER12> Ofcourse XKCD has it's own category for you to read:

[https://www.explainxkcd.com/wiki/index.php/Category:Comics_t...](https://www.explainxkcd.com/wiki/index.php/Category:Comics_to_make_one_feel_old)

</comment></comment></comment></comment></comment><comment><USER13> Was anyone here at HN into Dark Forces II / Jedi Knight back in the day? The retro graphics of this post made me a bit nostalgic. The in-game scripting in Jedi Knight was my first exposure to software, and the modding community at Massassi was an incredibly creative and lively place.

The poor checksums on game assets in Jedi Knight, along with early multiplayer on MSN Gaming Zone made the whole gaming community an adventure. You could never be sure what kind of shennanigans you encountered, with people having all sorts of weird gameplay hacks.

<comment><USER14> Hello, you could say that. I love JK and I played the thing with the software renderer for years because my s3 virge card wouldn't render the game correctly.

My son teases me these days "Jedi Knight sucks, dad!" when he catches me working on the site (this is Brian from Massassi; it's sort of still around).

<comment><USER15> > this is Brian from Massassi

Oh man, thanks so much. That site's awesome.

Jedi Knight's one of only three online shooters I ever played much of (Wolfenstein: Enemy Territory and one of the Elite Force games, I forget which, being the others) and the only one I ever got good enough at to be accused of "hacking" at least a couple times a session (never, ever did). It has a special place in my heart. Thank you for your work in the community.

<comment><USER16> > Wolfenstein: Enemy Territory

I sunk so much time in W:ET, got to a pretty good level with it, until everyone figured out the wallhacks, and every game became about trying to nail that perfect jump. For whatever reason, no matter how much time I sunk in to those wallhack training maps I could never get the knack of it, which meant I could no longer be where I needed to be to defend the base.

</comment></comment></comment></comment><comment><USER17> I know this will probably get buried here, but like - I want to try this. I was a huge fan of Quake 1 and 2. How the hell do I get started? (Note: I'm not a programmer, I'm a marketer. I know just enough PHP/JS to be stupidly dangerous.)

<comment><AUTHOR> I think the easiest way to get started is mapping. This is a very cool map editor for Q1 and Q2:

[https://github.com/kduske/TrenchBroom](https://github.com/kduske/TrenchBroom)

There's plenty of good content here:

[http://forum.tastyspleen.net/quake/index.php?topic=21859.0](http://forum.tastyspleen.net/quake/index.php?topic=21859.0)

[http://maps.rcmd.org/tutorials/](http://maps.rcmd.org/tutorials/)

Map compiling and texture tools are included in the engine code:

[https://github.com/klaussilveira/qengine/tree/master/src/too...](https://github.com/klaussilveira/qengine/tree/master/src/tools)

The Quake community is awesome: [https://quakewiki.org/wiki/Mapping_tutorials](https://quakewiki.org/wiki/Mapping_tutorials)

[https://www.quaddicted.com/forum/](https://www.quaddicted.com/forum/)

[http://www.celephais.net/board/forum.php](http://www.celephais.net/board/forum.php)

<comment><USER17> Thank you for this!!!

</comment></comment></comment><comment><USER18> Just a few days ago I was searching on how to implement a software renderer. I remember enjoying the software rendered of quake much more than the opengl version.

Great project!

<comment><AUTHOR> If you dig software rendering:

[https://github.com/ssloy/tinyrenderer](https://github.com/ssloy/tinyrenderer)

[https://www.youtube.com/watch?v=HQYsFshbkYw](https://www.youtube.com/watch?v=HQYsFshbkYw)

[https://www.youtube.com/watch?v=Y_vvC2G7vRo&list=PLEETnX- uPt...](https://www.youtube.com/watch?v=Y_vvC2G7vRo&list=PLEETnX- uPtBUbVOok816vTl1K9vV1GgH5)

[https://www.amazon.com/Tricks-Programming-Gurus-Advanced- Gra...](https://www.amazon.com/Tricks-Programming-Gurus-Advanced-Graphics- Rasterization/dp/0672318350)

<comment><USER19> Mandatory reading: Michael Abrash's Black Book, available freely and legally online at [https://github.com/jagregory/abrash-black- book](https://github.com/jagregory/abrash-black-book)

</comment></comment></comment><comment><USER20> Super cool. I always loved that mid-90s 3D look.

I'm familiar with how the GPL applies to regular system/web software, but I haven't had experience with it and game engines before. Since this engine is GPL-licensed it seems like any game built with this engine would then also need to be GPL-licensed, correct?

<comment><USER21> > Since this engine is GPL-licensed it seems like any game built with this > engine would then also need to be GPL-licensed, correct?

Yes, mostly correct. In order to comply with the GPL, and distribute game binaries, you need to make the source to any game you make with it available under the same terms.

Technically that does not mean that you have to distribute the game under the GPL, but in practice that's how you would comply with the engine's license.

<comment><USER22> Wouldn't a game engine have the same role as gcc? As a tool, unless you're extending the source itself, you shouldn't be infected by the engine's license

<comment><USER23> Depends. In this case the engine is just a blob of code that you clone, and you modify it in order to make your game. You'd have to comply by the rules of the GPL.

</comment></comment></comment></comment><comment><USER24> This is great. I remember back to the late 90s when I was busy hacking gamex86.dll to customise my Quake2 Death-matches with my friends.

One thing I wonder about this release is though - the Original Quake2 engine had a very fixed palette and also some odd lighting that always skewed the palette to a brown tint - does qengine fix this?

Also... Bonus... Some Quake2 maps, that I made way back: [http://www.jaruzel.com/blog/my-quake2-maps](http://www.jaruzel.com/blog/my- quake2-maps)

<comment><AUTHOR> From my perspective, that odd lighting and tint is part of the aesthetic that makes it great. You can learn more about how the renderer works here:

[http://fabiensanglard.net/quake2/quake2_software_renderer.ph...](http://fabiensanglard.net/quake2/quake2_software_renderer.php)

You can create your own palette using the included pcx2pal: [https://github.com/klaussilveira/qengine/blob/master/src/too...](https://github.com/klaussilveira/qengine/blob/master/src/tools/pcx2pal/pcx2pal.c)

After that, you might want to generate the colormap: [https://github.com/klaussilveira/qengine/blob/master/src/too...](https://github.com/klaussilveira/qengine/blob/master/src/tools/colormap/colormap.c)

If you enjoy the code of Q2, but also would like more modern rendering, I highly recommend quake2xp from Barnes: [https://www.moddb.com/mods/quake-2-xp](https://www.moddb.com/mods/quake-2-xp)

Yamagi is the gold standard for all Q2 engines: [https://github.com/yquake2/yquake2](https://github.com/yquake2/yquake2)

And some art help: [http://maps.rcmd.org/tutorials/q2_palette_textures/](http://maps.rcmd.org/tutorials/q2_palette_textures/)

</comment></comment><comment><USER25> Is allegro still maintained, I thought it was as of a few years ago. You can develop like its 1997, or 1987.

<comment><USER26> Factorio, a recent relatively popular indie game, was developed on Allegro.

<comment><USER27> They're moving off of it last I heard. Sounds like it's a legacy solution at this point.

[https://www.factorio.com/blog/post/fff-230](https://www.factorio.com/blog/post/fff-230)

<comment><USER28> Huh, I wonder what that'll mean for cross-platform compatibility. As they say in the post, Allegro supports a lot of platforms, whereas if they end up just targeting DirectX 11, that pretty much locks out everyone other than Windows and Xbox, doesn't it?

<comment><USER27> I believe they support Linux as a first-class citizen, even with removing Allegro! I've had VERY good luck with Factorio running through Steam, on Debian Linux (both 8 and 9). I have also ran it on Mac OSX and Windows 7 without any issue.

That game is so rock-solid as far as stability/system support that I would literally buy it again out of general principal =)

</comment></comment></comment></comment></comment><comment><USER29> > Removal of OpenGL

Huh. I suppose CPUs are fast and all, but still seems odd to replace perfectly good OpenGL renderer with SW rendering.

<comment><USER6> Considering this, I wonder why the choice of Quake 2 instead of Quake 1 since the main thing Quake 2 introduced has over Quake 1 was colored lighting but that was only available in the OpenGL version.

<comment><USER30> The MD2 model format is considerably extended over MDL, in size limits, vertex resolution, and features like texture animations. And while Q1 had the split between Netquake and Quakeworld networking, Q2 has a single system. Those kinds of refinements can make the difference.

</comment></comment></comment><comment><USER31> Anyone else remember Silent Death Online? [https://www.youtube.com/watch?v=3BvgxDCbZxE](https://www.youtube.com/watch?v=3BvgxDCbZxE)

Hopefully one day it'll live on in another game that would do for others what it did for me. I even have some notes scoping it out..

Just roughly speaking, maybe something something like [https://github.com/waterson/purescript- asteroids](https://github.com/waterson/purescript-asteroids) and [https://github.com/hdgarrood/multipac](https://github.com/hdgarrood/multipac) together

..But who knows what game programming might look like soon.

</comment><comment><USER32> Ooh, I fondly remember late '90s nights tinkering in QERadiant. These days I'd be able to tinker way harder than just editing levels.

<comment><AUTHOR> [https://github.com/kduske/TrenchBroom](https://github.com/kduske/TrenchBroom) is the new cool

</comment></comment><comment><USER33> And for those who'd prefer it were 1983 and we had the tooling then, that we have now, there is 8-bit Dude's engine, 8-bit unity:

[http://8bit-unity.com/?page_id=121](http://8bit-unity.com/?page_id=121)

.. which is also quite intriguing, for those of us with a bent towards the 8-bit aesthetic...

</comment><comment><USER34> With only two commits, which are several months old, this project doesn't look very healthy.

</comment><comment><USER35> If you want something more general purpose that can load lots of different 3d formats including Quake 3 maps, take a look at Irrlicht.

</comment><comment><USER36> Quake 2 is _retro_? Shit, I'm old.

<comment><USER23> People in their early 20's don't even know Half-Life (released at the end of 1998, over 20 years ago now), let alone Quake. We're definitely getting old!

<comment><USER37> Blame Valve's lack of interest in maintaining their franchises for that one.

<comment><USER38> i lowkey kinda feel that the pervasive gamer hype about half-life 3 (for example the "hl3 confirmed" meme was extremely pervasive) made valve feel like it would be impossible to match the hype, and any flaw would be hyper focused. maybe now that it's faded a bit there won't be as much pressure. or i could be wrong about that mattering.

<comment><USER39> The book "The Final Hours of Portal 2" has a section where they explained how much pressure they felt to try and have Portal 2 live up to Portal 1. Even effectively shutting down development of of other games for 2 months so the whole company could focus on prototyping experiments for new gameplay concepts that could be incorporated into Portal 2.

I would not be surprised of the pressure they feel for Half-Life 3 to be great is an order of magnitude greater than what they felt with Portal 2

<comment><USER37> Team Fortress 3 when

</comment></comment></comment></comment></comment></comment><comment><USER40> \o/

</comment><comment><USER41> This needs true-color rendering with colored lighting at the very least. It's not fun when everything is grey/brown pixel smudge.

<comment><AUTHOR> There's two other cool engines with a software renderer that support colored lighting:

[http://super8.qbism.com/](http://super8.qbism.com/)

[https://github.com/leilei-/Engoo](https://github.com/leilei-/Engoo)

Both are Q1 though. However, the gray-ish/brown-ish look is entirely dependent on the color palette that you chose to use in your game. You have 256 colors to choose from, and with the 256x320 colormap, you get 64 shades of each.

<comment><USER41> Even GZDoom (A Doom port) has software color lighting now, so I'm shocked this doesn't have it, that's all.

And engoo is very good; I was one of its beta testers!

<comment><AUTHOR> PRs are welcome! :D</comment></comment></comment></comment>


Every Tech Startup Is the Same - <AUTHOR> https://www.youtube.com/watch?v=Bp57fPKcoRs <comment><USER2> I'm on the outside of tech and I did 1 month at health-tech and it was the epitome of this</comment>


New from Mobilizer: Local Testing Capabilities on Macs and PCs - <AUTHOR> http://mobile1st.com/new-from-mobilizer-local-testing-capabilities-on-macs-pcs/ <comment><USER2> Now that's good news!</comment>


Everything is fashion by Ninjadev - <AUTHOR> http://www.pouet.net/prod.php?which=65978

<comment><USER2> Video capture: [https://www.youtube.com/watch?v=gVcshkaV4oc](https://www.youtube.com/watch?v=gVcshkaV4oc) .

Source code: [https://github.com/ninjadev/tyve](https://github.com/ninjadev/tyve) and [https://github.com/ninjadev/nin](https://github.com/ninjadev/nin) .</comment>


The Mystery of the Havana Syndrome - <AUTHOR> https://www.newyorker.com/magazine/2018/11/19/the-mystery-of-the-havana-syndrome <comment><USER2> > The name is a pseudonym, which she requested in order to protect her > privacy.) Her life in Havana was fascinating but orderly. She lived with her > husband and their twelve-year-old twins

This is the problem with "anonymizing" a person by just changing their name, or exchanging a name in a database with a number.

There's a pretty high probability that the number of FSI agents in Havana with 12-year-old twins is precisely one. We already know she works in the embassy in Havana, which means she's one of a couple hundred people, she's female, which cuts that number in half, she has twins, which cuts that number by about 100.

<comment><USER3> Yeah, that's interesting.

We start with approximately 33 bits needed to uniquely identify her. She lives in Havana, which immediately slices 11 bits from our search space (the population of Havana is around 2.13 million, or ~2^21). She's female, so we can roughly cut our population in half again; now we're only at 20 bits.

She worked in the Havana embassy in 2017 and was one of the people impacted by the strange health issues. There were about 24 people impacted (insofar as I can quickly find online), which means she must be one of these 24 people. Assuming all of the other 23 are also female, now there are only 4 bits remaining (24 = 2^4.58).

Finally, she has twin 12 year old children. We'll have to make a few fuzzy assumptions here, but given 1) a birth rate of ~1.5 per female per year, 2) a world female population of ~3,232,000,000 in 2005, and 3) a chance of having twins at about 3.33%, she is most likely in a set of about 159,984,000. This is only about 27 bits, which means we get a little over a 5 bit reduction by placing her in this set. That gives us the last 4 bits we need.

This is all assuming that the information given in this article is correct and the foregoing estimates are comparable to the real world statistics. This is a little fuzzy because I'm not sure if she's actually Cuban or American (and therefore where she was in 2005, or which estimates to use for calculating twin and birth rate statistics).

<comment><USER4> She doesn't live in Havana anymore.

<comment><USER3> Well actually between having worked in the embassy and having twins in 2005, there are still theoretically enough bits to uniquely identify her. Knowing where she lives just bolsters the selection a bit.

</comment></comment></comment></comment><comment><USER5> They said it wasn't likely a toxin, or at least there were no toxins that screening picked up on. But could some other fungus/mold or other pathogen infect the people there or could they accumulate a toxin that wasn't screened for? Just how clean did they get and keep that place at?

</comment><comment><USER6> Is it just me or does it seem this would be trivial to detect with tangible proof? One or several software-defined radios can be set up to listen to the full breadth of the radio spectrum. If an incident like this is ever reported again, correlate the waterfall view with the time of the incident, and see if there were any increases in activity in that period. I currently believe this was a mass hysteria.

<comment><USER7> It's not trivial. Beams could be narrow and could only be on for short periods of time. Combine that with all kinds of noise, stray signals, and other false positives, and you'd still be searching for a needle in a haystack. It's not clear what frequency to even look for...

</comment></comment><comment><USER8> I would be stunned to discover that this is anything other than a case of mass hysteria.

Psychosomatic symptoms are still symptoms and stress and anxiety can cause physical changes to the body and brain and long lasting effects.

<comment><USER9> Dunno though. From the article:

>But their skepticism vanished when they saw the patients. "There was not one individual on the team who was not convinced that this was a real thing," Smith said.

and from another article: ([https://www.sciencedaily.com/releases/2018/08/180829115456.h...](https://www.sciencedaily.com/releases/2018/08/180829115456.htm))

>"We have seen this before when the Soviets irradiated the U.S. Embassy in Moscow in the days of the Cold War," he said.

So the Soviets / Russians have form and the symptoms fit. There was also a van seen which could have had the gear:

>...looked outside her home after hearing the disturbing sounds and seen a van speeding away. ([https://www.nytimes.com/2018/09/01/science/sonic-attack- cuba...](https://www.nytimes.com/2018/09/01/science/sonic-attack-cuba- microwave.html))

</comment></comment><comment><USER10> I'm an American going to Havana tomorrow until Friday. Here's to hoping my head doesn't get long-range microwaved...?

<comment><USER11> As an American, Cuba is probably the safest place you can visit in LA.

<comment><USER12> What about Costa Rica, Uruguay, Chile..? I think Cuba is pretty safe but it's not the only safe country in LA.

</comment></comment></comment><comment><USER13> So the first "victims" were CIA officers, and the CIA the first to start pushing to close the embassy and return to the status quo developed and favored by the CIA for decades.

No evidence exists to suggest anything actually happened to the victims, and what limited scientific evidence does exist is being criticized.

And all of this just happened to directly support the official hard line position taken by the new US government.

What a remarkable set of coincidences!

<comment><USER14> Did you read the article? If you did then you're being purposely misleading about what you read. The article was about the many non-CIA officers affected. There is plenty of evidence of brain injury, just no evidence of how it happened or what agent(s) caused it. And how about the coincidence that the hard line position of the new US government lines up perfectly with the desires of hard line Cubans, Russia, and China. You insinuate that the new administration is the only group of people in the world interested in scuttling normalization.

<comment><USER13> > There is plenty of evidence of brain injury

>> In fact, aside from the victims' accounts, there was no conclusive evidence that anyone in Cuba was attacked at all.

>> an investigation carried out by Canada and Cuba has thus far found no evidence of attacks.

>> After the study was published, JAMA received letters from other specialists, arguing that the study was flawed, especially in neglecting psychological explanations.

>> "After a year and a half, the most powerful nation on earth hasn't been able to present one single piece of evidence"

>> But he acknowledged that more data were needed to convince skeptics that the syndrome was real. He said his team was awaiting "potential tangible evidence" from a new neuroimaging study involving the victims.

> You insinuate that the new administration is the only group of people in the > world interested in scuttling normalization

Sure, plenty of other parties interested in stopping the normalization of relationships exist. But their state intelligence agents aren't the ones claiming injury from a mysterious attack that no one seems to be able to prove happened.

> The article was about the many non-CIA officers affected.

Psychosomatic illnesses are a real thing. They can cause real and serious impact to people's health.

A psychosomatic illness arising after the stress of living and working in a country that has been "the enemy" for six decades, after being told that you will be under "constant surveillance by Cuban intelligence", after their intelligence agents make it clear to you that you're under surveillance? After three agents of your state intelligence suddenly come down with a mysterious, unexplainable illness? Seems entirely plausible to me.

<comment><USER4> And what about the people who suffered this without any prior warning?</comment></comment></comment></comment>


Show HN: Unity 3D in Docker - <AUTHOR> https://github.com/nenadg/docker-unity3d <comment><USER2> This isn't about running Unity games in Docker, it's about running the Unity editor in a container, for use in automated continuous integration processes.

<comment><USER3> exactly; anyone who doesn't see the use case hasn't built a business based around unity (not recommended btw!)

<comment><USER4> I'd love to hear your thoughts on why you don't recommend that. Think I could learn.

<comment><USER2> There was a time when Unity was by far the best tech platform for building your game on. Then they took on a ton of VC money, grew very fast, and went after all forms of mobile, VR, and desktop development, at which point they morphed from the best platform for game development to the worst platform for enterprise development.

Speaking as a 10 year customer of Unity, I can't wait for Three.js, gltf, and a couple other components to get just a bit more solid so I can drop my dependence on Unity. Three or four years ago it would have been inconceivable for me to say something like that, as I was a long term hardcore fanboy.

It's just not the same company or solid development experience it once was.

<comment> kot-behemoth Speaking of Three.js, have you heard of PlayCanvas ([https://playcanvas.com](https://playcanvas.com))? It's pretty much a Unity- like IDE based on Three.js, and allows a whole bunch of cool features, like live collaboration.

Here's an example game made in it: Tanx, [https://tanx.io](https://tanx.io). And here's a lightmap-heavy scene for eye candy: [https://playcanv.as/p/txPePQvy/](https://playcanv.as/p/txPePQvy/)

<comment><USER5> It looks good, but on my Macbook Air I get really bad framerates (<10 FPS). I'm not sure if that's because of this tool, or WebGL itself, but I'm able to play Unity games like Cities: Skylines without any issues.

</comment></comment></comment></comment></comment></comment><comment><USER6> I made this CLI installer for Unity that will install any semantic version range for OS X (hard coding URL not necessary): [https://github.com/zettaforge/unity- installer](https://github.com/zettaforge/unity-installer)

I would accept pull requests for Linux and Windows package support.

You can also avoid hard coding any install paths using unity-path: [https://github.com/zettaforge/unity- path](https://github.com/zettaforge/unity-path)

I would accept PRs there too to professionalise documentation (emotional appeal was an experiment that brutally failed) or help with marketing.

Both these tools could be useful for customisation of this Docker image. They are thoroughly tested with full coverage :)

</comment><comment><USER7> That's pretty cool actually. I knew you can run VNC in Docker container but I never managed to do it :)

I adapted this to run Godot Engine: [https://github.com/TeddyDD/godot-docker- vnc](https://github.com/TeddyDD/godot-docker-vnc) It's not useful I think since Godot has headless server you can use for CI but it was fun anyway.

</comment><comment><USER8> What are some use-cases for this sort of thing...?

<comment><USER9> Unity is extremely useful for all sorts of things outside of and gaming adjacent. Compiling 3d assets, spatial calculation, audio processing, procedural tasks, physics and material modeling, GIS/Architectural/Structural simulation.

I have a containerized set of headless unity processes that take a map selection from a variety of public and private sources plus user data and compile it into a detailed modeled environments to be later served in WebGL, mobile, desktop, and 3D printed. Doing it in the users client would involve a lot of memory management and storage on sometimes restrictive devices, also unity can hand things off to numpy/scipy, ffmpeg, etc easier on my server than it can your phone or desktop.

There is also a huge push from Nvidia[1] specifically and others to build new tools for remote GPU use taking the load off of thinner and thinner clients doing more and more things. OSX High Sierra offers remote GPU usage in Metal2. Connecting all these vector processors will frequently be for data ETL, but rendering that data is going to fall onto tools like Unity a lot, which will also be sharing in the role of assembly and iteration.

With the new new embedded machine learning chipsets in every new gizmo, tools like Unity and Unreal are about to be ubiquitous doing all sorts of heavy lifting. There isn't quite a written playbook for what's going on, but it's pretty crazy and exciting. Almost like it was 1996 internet again.

[1] [https://devblogs.nvidia.com/parallelforall/goai-open-gpu- acc...](https://devblogs.nvidia.com/parallelforall/goai-open-gpu-accelerated- data-analytics/)

<comment><USER10> You should write a blog post! It's an awesome reply.

<comment><USER9> Thanks! I've been working on a series. We are about to go live and start pushing out my devlog content too. We've had to be sort of protective about some of it to make sure important launch IP is protected, but soon! And thank you for the compliment, I've been sneakily building up my blog chops with anonymous Reddit and HN posts. It seems to be working!

</comment></comment></comment></comment><comment><USER11> Should `rm` the downloaded package after here to save space:

[https://github.com/nenadg/docker- unity3d/blob/master/Dockerf...](https://github.com/nenadg/docker- unity3d/blob/master/Dockerfile#L72)

<comment><AUTHOR> it's already solved @ [https://github.com/nenadg/docker- unity3d/commit/b7e4bc702fdf...](https://github.com/nenadg/docker- unity3d/commit/b7e4bc702fdffafb5dbc55ab077e045d45aab48b)

</comment></comment><comment><USER12> Having just done this for my company, this is awesome. I probably won't move to using this for the time being, but there are a lot of pitfalls to doing this, many of them subtle.

We use Unity3D + Docker for CI and automated builds, which has massively decreased the number of "builds on my machine" issues (which Unity3d is very prone to)

</comment><comment><USER13> Hmm interesting, would a good use-case be deploying a scalable fleet of multiplayer servers?

<comment><USER14> Easier and cheaper to run your MP code as a plain old .NET process and client lib.

<comment><USER13> You are assuming you can divorce your authoritative server logic from Unity.

<comment><USER15> You can I believe - your server will end up being a standalone binary with all the necessary Unity things bundled in.

<comment><USER13> I believe the parent means writing your game logic in pure C# and avoiding the need for Unity entirely server side. For some types of games that's doable, but when you start needing physics or nav agents or even animation driven logic a headless Unity binary is the only real option.

</comment></comment></comment></comment></comment><comment><USER16> Real-time 3D graphics over VNC sounds painful.

<comment><USER9> Probably not what OP is doing, but there are way better ways to do that than VNC. You can adaptively stream gaming pretty effectively over any network especially a local wired one.

<comment><USER16> I wonder if Steam Home Streaming works for the Unity editor? It's a popular and accessible option.

<comment><USER9> You can literally dump frames out of a headless copy of a game into FFMPEG and transcode it into an adaptive stream.

I haven't tried this specific thing with video games needing live input, but you can run headless on AWS GPUs and dump those frames to an AWS Lambda process[1] to do the conversion and only have to manage the input. In this situation the only thing you are running is the game and not all the other bullshit that an operating system has to deal with in a remote desktop situation. All you would have to manage is the sync from the controller over a socket.

Another nice feature would be being able to save your gameplay and maybe edit it later for broadcast if you wanted.

[1] [https://github.com/binoculars/aws-lambda- ffmpeg](https://github.com/binoculars/aws-lambda-ffmpeg)

</comment></comment></comment></comment><comment><USER17> Is there any UE4 docker container? I would like to use UE4 instead, Unity3D is a horrible choice for a game engine. Maybe it is good for enthusiasts and hobbyists, but it is definitely not good for us pros

<comment><USER17> Seems like we do have an UE4 container. [https://hub.docker.com/r/wshearn/ue4editor/](https://hub.docker.com/r/wshearn/ue4editor/)</comment></comment>


Ask HN: Hacker News Tips and Tricks? - <AUTHOR>

I'm new to Hacker News. I read the Guidelines and the FAQ.<p>Does anyone have any tips and tricks for posting, commenting, and participating on Hacker News? <comment><USER2> Sounds like an interesting strategy to pick up a couple karma points :)</comment>


Show HN: Unbabel API – Human Corrected Machine Translation - <AUTHOR> http://blog.unbabel.com/post/75063388957/translation-api <comment><USER3> This type of crowdsourcing meets ML is a really nice example of where we can leverage humans and machines to the best of their current abilities.

It would be great if the feedback from the human workers could get reintegrated into the translation models in an online fashion so that they get better over time. I realize they're probably outsourcing their machine translation, but that would be a terrific fully integrated pipeline.

<comment><USER4> I am Unbabel's CTO. Thanks for your comment. Our goal is exactly to use that feedback to improve our MT systems. We are currently outsourcing our MT, while training our own models (using Moses). Besides generating parallel text, the types of data we will be collecting (e.g. chain of editions performed by each editor on a task), will allow new and interesting algorithms to update the translation models.

<comment><USER5> I remember reading your NLP papers back in my academic days. Great work. One typo: in the [https://www.unbabel.com/pricing/](https://www.unbabel.com/pricing/) page "from Portuguese to Portuguese can take some time".

<comment><USER6> And Italian to Portuguese should be not available.

<comment><AUTHOR> Why should it not be available?

<comment><USER7> There is currently a gray dot, which for the other languages is used to indicate that the source and destination language is the same. For Italian to Portuguese this is not the case. It should have one of the other colored icons.

<comment><AUTHOR> Ah, thanks, sorry, bug on our part, being corrected right now, thank you for pointing it out.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I didn't know the product by itself, I'm not commenting about the API.

Seems a really good idea, however I looked at:

[http://news.unbabel.co/fr/fobo-est-presente-a-san- francisco-...](http://news.unbabel.co/fr/fobo-est-presente-a-san-francisco- pour-devenir-la-maniere-la-plus-rapide-et-la-plus-facile-pour-vendre-votre- consumer-electronics/)

Vs.

[http://techcrunch.com/2014/01/10/fobo/](http://techcrunch.com/2014/01/10/fobo/)

and the translation, by _5_ people, is really poor: Just look at the first line :

>Maintenant, vous sauriez déjà que Craigslist n'est pas bon comme un lieu pour vendre votre produits.

This translation is unpleasant to read and has some mistakes. Google translate gave me a better translation.

I guess the problem comes from the fact that translators are not native in the target language. When you use the product, can you request native language translators ?

<comment><AUTHOR> Also, you are correct, one of the things we are noticing is that requiring that the translator be native in the target language provides significant quality. As we increase the community, we will optimize for that. Thanks for commenting.

<comment><USER8> As mmastrac said, if there's a way to add hints to the translator on how to translate small sentences (for a mobile app for instance) I'll definitely use your product!

For me, having a native translator seems a must have, I hope your community will grow enough for it to be possible!

<comment><AUTHOR> There is already a way to send comments to the translator, Thank you for your comment. When you send the message you can define the tone and give specific instructions. We also have an beta version of the android app and are almost ready to launch iphone. Also, we already have a lot of natives in the platform. For paid tasks, the quality is vastly superior to the news. I would invite you to try. Top up and experiment with giving instructions to the translators. And please get in touch with us, I would love to chat.

</comment></comment></comment></comment><comment><USER9> There is a kernel of genius in this: I can't translate a word of Chinese, but I can usually do a _good_ job of _correcting_ a good machine translation. If the machine does the first part, I can finish the last part, and I never knew Chinese at all! So this would appear to dramatically reduce the requirement for the extremely rare skill - being highly expert in two languages - down to the very common skill of being expert in one language, and just passable in the other. I love it.

<comment><AUTHOR> Thank you for your comment, that is exactly where are trying to get to.

</comment></comment><comment><USER10> I use unbabel a lot, and the really fast translation has a lot of implications that aren't immediately obvious. You can communicate with international customers efficiently in their own language. You don't have to build translation time into the end of your release cycle. It's really sad when you have to punt a last minute feature because you don't have time for translation before the deadline.

<comment><AUTHOR> Thanks for the comment, we love our customers and we hope we continue to bring value for you and your customers.

</comment></comment><comment><USER11> > Human Corrected Translations for 1 cent per word

"Per word" of the source language, or the target language? Sum of both? What about languages which have a different concept of "words" in written text (e.g. Chinese, Turkish, ...).

And by the way... "cent" of which currency? :)

Edit: I just saw that the list of supported languages does not contain languages with "exotic" types of word boundaries (yet).

<comment><AUTHOR> We are still trying to figure that out, there is no clear answer regarding how to base the pricing. Perhaps it should be based on words that were actually corrected? So for the time being we basing it only on source language words. For chinese, for example, we probably will do it based on characters, but ideas are welcome.

<comment><USER12> I think only pricing the source language makes sense. That way the consumer knows the cost going in and there's no incentive for you to provide more verbose translations.

</comment></comment></comment><comment><USER13> How do you guys deal with "context" around translations? Lots of shorter strings in web application require some hand-holding for translators to let them know where the phrase will be used, as the original English text might translate to vastly different things depending on surrounding functionality/text.

<comment><AUTHOR> That is a great point. We have some ideas on how to tackle that problem (like integrating with pontoon, from Mozilla, for example), but right now there would be some strings where that would be a problem. Surprisingly that has proven less of an issue than we had feared originally. In any case, it is a real problem for localization.

</comment></comment><comment><USER14> I have read some of your news translated in Italian by your service. That's a very good translation, though in some parts the automatic nature of the original translation is still detectable. E.g. The piece I read is the one about Adolf Hitler Platz, translated from TechCrunch. Commas are the dead giveaway: they're still used like in English. There's also a coordinate clause introduced by an em dash – we don't usually do that in Italian.

That's to say that the service is super interesting, but I guess the final user still has some manual editing to do if he/she wants to use this kind of translations in a professional environment. Given the price, it's still a great deal.

One last thing: the table in your home page shows that the translation from English to Italian is not available (Italy's listed only under the "from" column and not in the "to" row, if I'm reading that correctly).

Good luck with the product :)

<comment><AUTHOR> Thank you, we are working hard to keep improving. Keep in mind that the news is done by the whole community, while paid tasks are only done by the best editors.

</comment></comment><comment><USER15> Just curious, how is dynamic text handled in the Unbabel API? Can you pass something like "Your score is %1" where %1 would be replaced by the first parameter? Or would you have to request "Your score is 1", "Your score is 2", "Your score is 3", etc separately?

<comment><USER4> Right now you can pass variables. We tell editors to ignore those variables. For instance if you text is "Your score is %1" and you wanted to translate to Portuguese, the translation would be "A sua pontuação é %1".

</comment></comment><comment><USER16> Pretty neat, will have to try it out for Kiva. We translate a giant volume of words every year (we've translated nearly 100 million words total).

As it stands, we have an awesome community of volunteer translators who take care of most our needs, but sometimes in times of high demand we could use help getting through a large batch of loans to translate. That said, when we tested out some external services for leveraging machine translation and translation memories, what we found were a few problems that keep us from being able to leverage external solutions

1) Our volunteers don't like "post-editing", meaning what you are doing here of a human manually fixing up a machine translation. Since you are paying your translators, I imagine they don't mind though.

2) It seems the majority of companies are focused on English -> Foreign Language, whereas the vast majority of our translation needs are Foreign Language -> English, and this proved decisive with most of the software being geared in such a way.

3) Our partners are often in remote areas with not always the highest level of education, and often are writing in a language that is their second language (say perhaps French in a Senegal where the person's native language is Wolof), so the grammar of the French is not going to be great to begin with. This throws off the machine translation and makes it nearly impossible to develop a translation memory that is segmented in the right way to actually produce usable translation suggestions.

4) We need to review the text for policy guidelines (say for instance a partner puts in directions to a business by accident in a region where our borrowers are anonymized for safety reasons). But if we send a translation out to a service like yours and then just have the English back, and then need to report an issue in it back to the partner, the reviewer who would just know English would not be able to communicate back to the partner the issue and identify it in the original language version.

Anyways, just some food for thought in what we've had trouble with in the space of trying to help us get our lenders connected to our borrowers by providing them accurate translations of the borrowers' stories.

<comment><AUTHOR> Thank you for your comment, very insightful concerns and advice. We would love to chat with you about your experience with crowd translation, it would be really helpful. Would it be possible to get in touch?

One thing that we could be useful for is to actually help your reviewers to communicate with the partner, that is to help in translating the communication itself.

In any case, Kiva is an amazing organization, so obviously we would love to find out how we can help in any way.

</comment></comment><comment><USER17> Interesting idea. I am wondering though about "send message in your native language". How will that work exactly ? I tried the demo but do you actually support the native language script ? I got "* Unfortunately we currently do not support this language. Please try a diferent message." How can I type in Chinese for example ?

On a side note, just something that I find all the time. The unbabel blog does not link anywhere to the main site and I had to type unbabel.com manually to go there. Isn't this something that you guys care about in terms of traffic source ?

<comment><USER18> The demo is currently restricted to 4 languages: english, portuguese, spanish and french. We do have chinese editors and can support chinese characters in the live product, but are not offering it right now, as we don't have critical mass.

Thanks for the heads up about the blog. Corrected at the end of the post.

</comment></comment><comment><USER19> Was going to make a product similar to this exclusively for Japanese language -- interested to see how you guys do - I think the premise might be largely flawed though, you do not want more than one person translating a large document. Context is important in a lot of languages, and incoherent writing style (as translation is almost never an idempotent function, there is always more than one way to say something) often seems unprofessional.

(nvm, I think my idea is differentiated enough that I still might make it some day)

<comment><AUTHOR> Hi, that is good point. It is something we are working hard on. I think that starting with machine translation helps with maintaining coherence in style. In way it is as if the first translator (the machine) translated the whole document. The rest can be tackled with a lot of preprocessing and post- processing. That being said, our method is not suited for really long forms, such as 25 page documents or novels. Anything that requires creative translation would probably need a professional translation dedicated on the project. I would be interested in talking to you about your idea for Japanese. Anything I can do to help let me know.

<comment><USER19> So, I'm not likely to pursue my own idea (though I registered a domain name a long time ago and have a MVP that's rough around the edges) -- but I don't want to be an idea-hoarder, I'd like to see where you guys go with this, so I want to make suggestions (if you don't mind, I'm really not trying to sound uppity at all)

\- I don't think that starting with machine translation to maintain coherence in style is a good idea, while AI is still in it's infancy. Things like sentiment detection, NLP, etc are still too infant in my opinion -- this is baked into the premise of the idea as a whole... We still NEED humans to write good translations - it seems unreasonable to start at the assumption that you will get high-quality output from the imperfect machine process that you are trying to improve (if that makes sense).

I think at best, you will START with bad style, at worst, people will essentially re-translate the chunks to make more sense anyway, and you're left with the hodge-podge.

\- If your method WAS suited for medium/long-form, I would suggest adding another tier of worker-bee: the proof-reader. Allow worker bees to apply/become proof readers, and create multiple proofs for large documents. These workers would have qualified for longer-form proofing and possibly editing. A possible increase to the relative pay of the proof-readers (as they are even more closely linked to your revenue and customer satisfaction, and are doing more work to boot), and providing multiple or a combined proof to the customer (up-charge for this) would be a great addition to what you already offer. This will probably do wonders for quality control, and will remove the problem above (I think, to the extent humanly possible). This also gives the people who work with you chance for improvement, chance to build a personal brand, and a chance to take pride in their work (and maybe even build personal/business relationships/trust that benefit the company).

\- Why not play in all the vertical space that you guys are in? Part of my version of this service dictates a flat rate for a certain length, and a CLEAR indication that that kind of service is for people with small blurbs to translate. Some companies only need to translate small blurbs (disconnected paragraphs, tag lines, etc), and could benefit immensely and constantly (if you make a brochure for your company, or even an earnings report, etc, you would need this service EVERY month/year, for example). I don't think you would have to make too many structural changes to accommodate such a group of potential customers.

\- I have not operated a system like this at scale, so all my suggestions are largely baseless (keep that in mind please)

Oh and my idea was to rid the world of "Engrish", especially at the corporate level.

<comment><AUTHOR> Thank for your comments, really insightful ideas. A lot of what you say we are already seeing. For example in Turkish, where the quality of the MT output is not as good as let's say Spanish, we are already seeing our translators replacing entire chunks of text. Interestingly, in other language pairs, the output is close enough that there is usually minimal changes in the output.

We have been thinking about having the editor position, we are experimenting with the concept and how it fits with out current workflow.

Anyway, thank you for your ideas, really cool.

<comment><USER19> glad that some of it made sense, I really liked the site and obviously believe in the idea, interested to see where you guys will go with it!

</comment></comment></comment></comment></comment><comment><USER20> This is an awesome approach to human crowdsourced translation. The project I was working on back in early 2012 ([http://crowdlation.com](http://crowdlation.com)) was going to use machine translation coupled with human editing and reviews in a very similar fashion. I'm glad that this idea has such positive feedback, and I wish you guys the best of luck! Feel free to reach out to me via the email in my profile if you guys would like to chat.

<comment><AUTHOR> Thanks, I reached out through linked. I am looking forward to talking to you about your experience in crowdlation.

</comment></comment><comment><USER21> I just saw a machine-translated text that was given to a translator I know for "post-editing". Basically you have to delete everything that the machine translated and do it all over again.

If you want to offer that for 1 cent per word you are going to get exactly what you are paying for. 90% of qualified translators are bad enough that I would never let them translate anything for me. I cannot imagine the remaining 10% will work for 1 ct/word.

<comment><AUTHOR> Thank you for your comment. There is a lot of variation depending on the language. In Turkish, that tends to happen, a lot of times the translation needs to be redone, but in EN-SP it is surprisingly good. The crowd aspect of it tends to help with the quality problem. Still a lot of work to do though, but we are off to a promising start.

</comment></comment><comment><USER22> Since the title is 'Human Corrected .. Translation' I assumed the API includes a way for the end-user to provide feedback on the translation. According to the docs there is a way to provide some instructions, define topics, but all prior to the translation.

Also what if you want to translate multiple snippets of text, and keep them somehow consistent? (for example some .po files from a project, translated one entry at a time).

<comment><USER4> There is an endpoint to report a translation which we will release soon (it's at the end of the documentation), meanwhile you can report a translation directly to us.

We have an endpoint for bulk translations. We are working on a way to submit XLIFF and PO files directly. Part of the consistency is achieved by the first step of MT. We are working on keeping consistency between editors by propagating their changes.

</comment></comment><comment><USER23> Just a heads up for OP, looks like there's a mistake in your matrix of support languages:

[https://s3.amazonaws.com/unbabel-assets- production/img/chart...](https://s3.amazonaws.com/unbabel-assets- production/img/chart_1.png)

Italian - Portuguese has a "n/a" style dot, but Portuguese - <USER2> translation says "Can take some time".

<comment><AUTHOR> Thanks! :) I guess that one we could do pretty much instantaneously. Thank you for pointing out.

</comment></comment><comment><USER24> Very interesting concept! I registered, and will keep an eye out for when/if you guys add languages that I speak. I wonder if it's an error on my end, but my profile says I'm in Arrifana, Portugal. I can only seem to change my country of birth, which for the record isn't Portugal, so I wonder where that is pulled from.

</comment><comment><USER25> Very cool!

Let's say I wanted to Unbabel something from German to English. How long is 'Can take some time?'

Also, how long does it take to Unbabel something given 'Regular service' conditions?

Last question, how long before 'Unbabel' catches on as a verb?

<comment><AUTHOR> Thanks Trey. Our goal is to get to 15 minutes of translation time. That would make it usable for email and customer service messages. Right now it depends on when our users are awake and which language pair. Faster time has been a few minutes, average is around an hour.

<comment><USER25> That's fantastic! Great turnaround.

</comment></comment></comment><comment><USER26> Have you guys looked at [https://github.com/pksunkara/alpaca](https://github.com/pksunkara/alpaca) to generate API client libraries (SDK) instead of spending time on developing them?

<comment><AUTHOR> I will look at it. Thanks for the info.

</comment></comment><comment><USER27> Great platform. I hope you add more languages soon. My english is not good enough but I could provide you with 2 east european languages and translate them into german.

Also payment in BC or similar would be great.

<comment><AUTHOR> Thank you. We are planning to add Bitcoin at some, paying our translators across the world is sometimes hard.

</comment></comment><comment><USER28> this is an interesting API to have onto Mashape: [http://mashape.com](http://mashape.com)

<comment><AUTHOR> Certainly, we started posting it there, haven't had a chance to finish it, but will certainly do so. Mashape is a great website.

</comment></comment><comment><USER29> Congrats vasco! Your pitches were very good

</comment><comment><USER30> Good luck with your project.

</comment><comment><USER31> I wish you guys the best :)</comment>


Project IINA – The modern macOS video player - <AUTHOR> https://lhc70000.github.io/iina/ <comment><USER2> This look really nice!

I contributed a lot of macOS related code to mpv, but even if the project has a huge user base of power users, developers, videophiles, it's quite hard to use by your average joe. This project fills that gap very well, and I finally have something to recommend over VLC.

</comment><comment><USER3> Excellent start! I especially like the audio features. Movist is my current reference app for movie playback. But IINA is now in the on-deck circle. Best of luck.

</comment><comment><USER4> "modern" is misspelled "mordern" in at least two places.</comment>


Ask HN: Getting back to work after a brain tumour - <AUTHOR> I was recently diagnosed with a high grade brain tumour, followed by a surgery and currently undergoing post operative therapy. I'm looking to get back to work & normal life. My software engineering experience includes working in a big 4 for a few years followed by a couple of years at a start-up when this happened. I'm close to 30.
Looking for positive stories from people you might know who got back to normal life after a critical illness.
Thanks! <comment><USER2> I used to work with someone who had stomach cancer. He was one of the most tenacious people I ever worked with and did not back down to anyone. If anything, his condition made him care significantly less about what people thought about him, and that made him bolder in his job and in turn helped him succeed.

Draw strength from surviving and let the fleeting nature of life empower you to re-prioritize things that are truly important to you.

Also, don't feel bad about needing to rest more often or ask for help. Everyone has their issues, and needing to rest frequently due to therapy is perfectly reasonable. If you get ANY shit whatsoever from your employer over the situation, start looking for a new job.

Best of luck and glad to hear you are able to think about getting back to a normal life.

</comment><comment><USER3> Sorry I'm not in a position to hire. I can only wish you success.</comment>


Google Wave Phishing Hack - <AUTHOR> http://blog.nparashuram.com/2010/02/phishing-with-google-wave.html

<comment><USER2> I don't really see how hosting the attack at Google is impressive — gmodules.com is no more believable as a proper login page than login.google.com.2de4dasdz.cx, or any of the usual phishing URL schemes.

Maybe there's some merit to not loading external, untrusted gadgets into waves without user approval, but where there's user-supplied data, there'll always be phishing.

<comment><AUTHOR> Well, it is not believable. The point here is that many people dont really notice the URL, specially when they are redirected to that page from inside Wave.</comment></comment>


The CIO's Nightmare: Intellectual Property Lawsuits - <AUTHOR> http://h30565.www3.hp.com/t5/Feature-Articles/The-CIO-s-Nightmare-Intellectual-Property-Lawsuits/ba-p/1168

<comment><USER2> The very first paragraph has a link entitled "Microsoft Office 95 are still being fought over in courts" as an example of an IP lawsuit, but the current Novel/Microsoft lawsuit is actually antitrust related. Even the linked to article (on ZDNet) says that.

It's weird to me that the writer linked to that, unless I misunderstanding things.</comment>


White and black children biased toward lighter skin - <AUTHOR> http://www.cnn.com/2010/US/05/13/doll.study/index.html <comment><USER2> Previous submission:

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

(showed the root URL without the "index.html," thus not string-matching this submission)</comment>


Centralized quarantine, not just lockdowns, may be required to control Covid-19 - <AUTHOR> https://www.wsj.com/articles/the-west-is-misinterpreting-wuhans-coronavirus-progressand-drawing-the-wrong-lessons-11585074966 <comment><USER2> No paywall: [http://archive.is/uAUyf](http://archive.is/uAUyf)</comment>


Ask HN: Is it even theoretically possible to achieve gender equality? - <AUTHOR> Recently, I was pondering over this idea of gender equality. Isn't achieving complete gender equality in society  contradicts the fact that there are "types" in gender. If there are different types to some entity, there has to be distinction (by definition), which suggests that complete equality cannot exist in the way they're treated? <comment><USER2> First of all, you seem to be thinking of gender as a binary. If you think of it that way, "gender quality" might mean "men and women are equally represented everywhere" to you.

Gender is fluid, though. That leads us to a better definition of gender equality: the same opportunities for each individual, regardless of his/her gender.

You're right that people with an extreme female gender will gravitate to certain jobs/industries and people with an extreme male gender will gravitate to others. That will maintain a wage gap one way or another, among other forms of inequality.

The goal we need to reach is for children of all genders to have all possible paths open to them in their careers, lifestyles, and recreational activities.</comment>


ASUS settles FTC charges over insecure home routers and cloud services - <AUTHOR> https://www.ftc.gov/news-events/press-releases/2016/02/asus-settles-ftc-charges-insecure-home-routers-cloud-services-put <comment><AUTHOR> > _Taiwan-based computer hardware maker ASUSTeK Computer, Inc. has agreed to > settle Federal Trade Commission charges that critical security flaws in its > routers put the home networks of hundreds of thousands of consumers at risk. > The administrative complaint also charges that the routers' insecure "cloud" > services led to the compromise of thousands of consumers' connected storage > devices, exposing their sensitive personal information on the internet.

The proposed consent order will require ASUS to establish and maintain a comprehensive security program subject to independent audits for the next 20 years._

Seems like measures like this are the only way to get router manufacturers to maybe care about security?</comment>


Computers to merge with humans - <AUTHOR> http://news.bbc.co.uk/1/hi/technology/7325004.stm <comment><USER2> I thought this article was going to be about inching closer to Kurzweil's utopia. :-)</comment>


Apple debuts iPhone Developer Connection site - <AUTHOR> http://developer.apple.com/iphone/ Still no SDK, but this is at least a useful resource for developing web-based iPhone content. <comment><USER2> Maybe I'm missing something, but I can't find a list of all Javascript objects to use to interact with the iPhone. For example, you might be able to do something like:

     document.onDoubleTap = function(event) { alert("double tapped at [" + event.x + ", " + event.y + "]"); }

But I haven't found documentation anywhere. Does anyone know where it's at, or if it exists yet?

</comment><comment><AUTHOR> Still no SDK, but at least there is good info here for developing rich web- based apps.</comment>


Alibaba Cloud growing fast, but still far behind AWS and other market leaders - <AUTHOR> https://techcrunch.com/2018/02/06/alibaba-cloud-growing-like-gangbusters-but-still-far-behind-aws-and-other-market-leaders/ <comment><USER2> I am tracking AliYun / Alibaba Cloud for some time now. They are expanding internationally with strong pace. You would not ramp up that amount of Capex without sales momentum. I hear that Alibaba Cloud is gaining significant traction outside of China and offer a highly interesting solution for non- Chinese companies to provide services in China (even assisting their customers to obtain the necessary licenses). Their product portfolio in China is significantly larger than their international offering - but that is growing as well. I was at their Cloud conferences in Hangzhou twice in 2017 and 2016 and honestly I was blown away by the depth and quality of their portfolio. From AI / ML over cybersecurity to quantum computing they are doing the right moves. I remember impressive figures on their DDoS protection solution. And they can do IoT and.. and... and.... And their compute and storage platform is massively scalable. Just look up what levels of traffic Alibaba could handle on its 'singles day' event (comparable to black friday and cyber monday - combined). So for me Alibaba Cloud definitely has the chops to become a global Top 3 player! Definitely comparable to AWS, GCP, Azure and a platform you should test. Happy to elaborate more - PM me.

<comment><USER3> _offer a highly interesting solution for non-Chinese companies to provide services in China (even assisting their customers to obtain the necessary licenses)_

Do you need a highly interesting solution with necessary licenses to use any other cloud in any other country?

<comment><USER4> It's a fair point. But licenses could be the right direction to go in future. Consider GDPR for doing business in Europe: that seems to be a good thing for data privacy. Cloud services that are licensed to provide GDPR assistance in Europe would be good for both clients and European consumers.

</comment></comment></comment><comment><USER5> Their cloud offering is a joke. Terrible UI. terrible on boarding.

It took me over 30 minutes of trying to deploy a small vps just to find out my account was locked out as a brand new user.

The moment they said to mail them a copy of government ID and the like I just closed my account and never looked back.

Don't use them.

<comment><USER6> Completely agree. It's crappy, expensive and on top of that it's the least trustworthy company to host with. Unless you need to be behind the great firewall I can't see any reason to touch them.

</comment></comment><comment><USER7> I'm quite surprised that IBM has more market share than Google. Is there some legacy IBM stuff at play here?

<comment> the-dude I think it is their 2013 acquisition of Softlayer?

<comment><USER8> Yes, Softlayer would be the factor here, pity they have been slowly ruining it since acquisition

<comment><USER9> Ah buyout history. if memory serves me correctly... EV1Server (Cobalt RaQ3s with 300gb data transfer / month - $99 back in early 2000s) -> ThePlanet ($39pm athlons with 1000gb data transfer mid 2000s) -> Softlayer (it started getting pricey) -> IBM (lets double prices and half the data transfer to 500gb). Unfortunately despite great automation devs they missed the software play in a massive way on the cloud front, kind of like Rackspace, kids nowadays will go OVH/Hetzner if they dare for bare metal.

<comment><USER10> You've got the history right. (Or mostly... For the first two, investors bought both companies and merged them into one brand. Technically, TP didn't buy EV1, SL didn't buy TP)

Going back a bit further, EV1Server wasn't even the original name. They rebranded from Rackshack! Wonder if there are any of those RaQs still plugged in and working somewhere, with people now paying that money to IBM decades later...

</comment></comment></comment></comment></comment><comment><USER11> > _While the majority of its business is in China and Asia more broadly_ , > that is a huge market and gives Alibaba enough lift to grow fast and move up > in the market more quickly. In another report from Synergy published last > year, it found to no one's surprise that the Chinese cloud market was > dominated by Chinese cloud companies.

What are numbers to support that they have a big presence in Asian countries other than China? I checked the pdf it doesn't talk about country-wise segmentation.

<comment><USER12> There's SB cloud, which seems to be Softbank's joint venture with Alibaba Cloud. I don't have numbers for you though.

[https://www.sbcloud.co.jp/](https://www.sbcloud.co.jp/)

</comment></comment><comment><USER13> AWS is blocked in China so you're forced to use Alicloud. Friends who use it say it is hard to use and has bad documentation.

<comment><USER10> >AWS is blocked in China so you're forced to use Alicloud.

AWS has two regions in China

<comment><USER14> Link for those curious: [https://www.amazonaws.cn/en/](https://www.amazonaws.cn/en/)

</comment></comment></comment><comment><USER15> Is there a firebase similar product offered by Alicloud?</comment>


Sacy, the Smarty Assets Compiler. compile CSS and JS assets with Smarty - <AUTHOR> http://www.gnegg.ch/2009/09/introducing-sacy-the-smarty-asset-compiler/

<comment><AUTHOR> While similar solutions might exist out there, sacy tries to be special in its own way by providing one hell of a user experience (keep your assets linked as always, but just warp them with a special tag - sacy does the rest) and outsourcing the hard stuff (serving the file, client-side caching) to the tool that does it best: The webserver.

But I'd say that the ease-of use for development is what is really unique.</comment>


How much web browser can you put in 128 lines of code? - <AUTHOR> http://lateral.netmanagers.com.ar/weblog/posts/BB948.html

<comment><USER2> ... if you use PyQt4 and WebKit as your basic building blocks, of course. Basically all the application code does is connect things together to make a browser. Still, quite neat.</comment>


French startup offering cookie-free adtech solution secures €2M funding - <AUTHOR> https://siliconcanals.com/news/french-adtech-startup-qwarry-funding/ <comment><USER2> They say they would use semantic data, but the article doesn't specify the source of it.

Just wondering if I could use local storage instead of a cookie and send the contents to the server via XMLHTTP to secure such a funding...

Since all browsers support local storage by now, I see no disadvantages.

But if they can make ad-tech less invasive, all the power to that project, please.</comment>


Solar Roadways: Solar surfaces that can be walked or driven upon - <AUTHOR> https://cityofhumans.com/solar-roadways-2/#.V6zl1u-Okb4.hackernews <comment><USER2> Requires a login to read and uses an SEO tracker in the URL.

Ditto with all 16 of the submitter's links to this domain since the account started a few weeks ago.

It's a summary, with link, to the solar roads announcement from 2015. There is no new information.</comment>


Dear millennial, Overnighters aren't productive - <AUTHOR> http://afaqdar.blogspot.com/

<comment><USER2> Sometimes the night is the only time when one can have 3-4-5 hours without distractions.</comment>


Map of Bell Systems Telephone Network (1910) - <AUTHOR> http://www.slate.com/blogs/the_vault/2015/03/16/history_of_the_american_telephone_system_map_of_bell_coverage_in_1910.html

<comment><USER2> If anyone is interested in the history of long-distance telephony in the US, the PBS documentary "Transistorized!" ([http://www.imdb.com/title/tt0381663/](http://www.imdb.com/title/tt0381663/)) ([https://www.youtube.com/playlist?list=PLA97634694AC92A93](https://www.youtube.com/playlist?list=PLA97634694AC92A93)) has a great explanation into Bell Labs' long-standing interest in the transistor going back to the use of vacuum tubes in signal amplification on the long stretches of telephone cable. The documentary is also really cool since it shows you the inner lives of Shockley, Brattain and Bardeen leading up to the discovery.

</comment><comment><USER3> Here are a couple more interesting historical maps from Bell, specifically from The Bell System Technical Journal in 1930.

The first shows "special contract telegraph circuits furnished to a brokerage company" (30 circuits / 95 stations / 38K km): [http://i.imgur.com/vL4W8Vz.jpg](http://i.imgur.com/vL4W8Vz.jpg)

The second shows "special contract telegraph service furnished a press association" (53 circuits / 124K km) : [http://i.imgur.com/ZEsBKKe.jpg](http://i.imgur.com/ZEsBKKe.jpg)

Lots more fun maps and diagrams @ [https://archive.org/stream/bellvol9systemtechni00amerrich/be...](https://archive.org/stream/bellvol9systemtechni00amerrich/bellvol9systemtechni00amerrich#page/n4/mode/1up)

</comment><comment><USER4> They even served Tesla, here in California!

Click the map to load the hi-res version, then zoom in on the San Francisco- Oakland area, and look below the Oakland label.

Background: [http://www.teslacoalmines.org/Tesla.html](http://www.teslacoalmines.org/Tesla.html)

</comment><comment><USER5> I was surprised to see Las Vegas as such a tiny blip, before remembering its history is still very recent. Founded in 1905, incorporated in 1911 (and was still decades away from its boom).

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

<comment><USER6> Las Vegas as a city wasn't really feasible until after the completion of the Hoover Dam and Lake Mead in 1936 about 30 miles away. You can't have a city without water.

</comment></comment><comment><USER7> No calling Miami on Bell's network in 1910.

<comment><USER8> The Florida land boom was in the 1920s. The Marx Brothers made a comedy about it: _The Cocoanuts_ (1929), their first full-length film.

<comment><USER7> An earlier boom in the 1880's was fuelled by the citrus industry and ended with the freezes of 1894/5\. Tourism also played a role to such a degree that Roosevelt's Rough Riders were quartered at the Tamap Bay Hotel prior to the invasion of Cuba. That boom is what gave enough population density to run service as far down as places like Conway [or Orlando itself] by 1910.

The _The Coconuts_ boom ended with the onset of the Great Depression...at least for those who believe it soft started with events like the Florida land crash and the Boll Weevil infestation across the South. Two post WWII booms were triggered by the wide spread availability of residential air conditioning and mortgage derivatives respectively.

[https://www.floridamemory.com/photographiccollection/photo_e...](https://www.floridamemory.com/photographiccollection/photo_exhibits/citrus/citrus2.php)

<comment><USER9> John Kenneth Galbraith includes a good discussion of the Florida land rush in his book _The Great Crash: 1929_.

</comment></comment></comment></comment><comment><USER10> Can I guess that a 1910 telephone map perfectly overlaps on top of a 1910 railway map?

<comment><AUTHOR> I imagine the 1910 railway network would be much more extensive: [http://cprr.org/Museum/Official_Rail_Guide_1910.html](http://cprr.org/Museum/Official_Rail_Guide_1910.html)</comment></comment>


How to Convert Blu-Ray to MOV on Mac/PC? - <AUTHOR> http://www.multipelife.com/blu-ray-to-mov.html <comment><USER2> This is hard for me to read. As a native English speaker, the writing here seems like it was badly translated by some automated program from some foreign language.

</comment><comment><USER3> Why is this relevant on hn?

also, use mp4 for gods sake</comment>


Ghosts Hunter HTML5 - <AUTHOR> http://delasource.info/ Hello, this is my first HTML5 game, it works on desktop, android, ios, windows phone 7 and 8 and firefox OS I hope you like it <comment><USER2> The "tap to continue" sign appears too many times. Perhaps it could be a good idea to keep them in the first "tutorial" level. But in the other levels it's a little repetitive and annoying. (I'm using a notebook with a mousepad.)</comment>


My RabbitMQ setup for notifications - <AUTHOR> http://andreim.net/2013/07/my-rabbitmq-setup-for-notifications

<comment><USER2> There's a cool and important feature to this setup that makes RabbitMQ specifically a great choice: queuing one message sends the notification to all devices at once.

In RabbitMQ, messages are published to _exchanges_ and based on the type of the exchange, messages will be routed to specific _queues_ , which is where the messages are consumed.

There are three types of exchanges you can publish to: Direct, Fanout, and Topic. In a Direct exchange (which is the default), a queue subscribes to the exchange with a routing key and any messages delivered to the exchange with that routing key is delivered to that queue to be consumed. So in a sense it's 1-1: exchange -> key -> queue.

However, in a fanout exchange, _every queue subscribed to an exchange gets a copy of the message_. This means that when you deliver a message to a fanout exchange, that exchange will give a copy of that message to _every queue that is listening_.

So you can send the "New Item" message to the "notify" fanout exchange, and every queue bound to that exchange will get the "New Item" message; i.e. the phone notification service, the web client notification service, etc, will all get the "New Item" message and can react accordingly. What makes this even better, is that if you add a new service (e.g. a new iPhone app), all you have to do to tap into your notification system to receive new item alerts is to tell a queue to listen to the notify exchange! You hear me right: _you don 't have to change any existing code._

Now, Andrei Marcu's aamnotifs is written in Python and he uses pika as his Rabbitmq module. Pika is a little more relaxed about the exchange types: any queues subscribed to an exchange with the same routing key will be treated as if they are attached to a fanout exchange, and will all receive copies of each message sent to the exchange with that routing key.

 __I say all of this just to point out the important point that Andrei left out: __to add a second, third, or nth listener to your notification queue which receives a copy of the updates, you just have to add another

        n.receive("routing_name", print_notification)

line and change print_notification to whatever method you want the message to go to. For example:

        import notifs

        def print_notification(title, message):
            print "Notification received: {0}: {1}".format(title, message)

        def web_app_notify(title, message):
            print "Webapp notification received: {0}: {1}".format(title, message)

        def iphone_app_notify(title, message):
            print "iPhone App notification received: {0}: {1}".format(title, message)

        def android_app_notify(title, message):
            print "Android App notification received: {0}: {1}".format(title, message)

        try:
            n = notifs.Notifs("amqps://user:email@example.com:5673/%2F")
            n.receive("routing_name", print_notification)
            n.receive("routing_name", web_app_notify)
            n.receive("routing_name", iphone_app_notify)
            n.receive("routing_name", android_app_notifify)

        except KeyboardInterrupt:
            break

gist here: [https://gist.github.com/rickhanlonii/6091542](https://gist.github.com/rickhanlonii/6091542)

<comment><USER3> Is it possible to have it so that it's fanout but a "die on first receive"?

i.e. If I send out a notification I don't care if it's my phone, my desktop or my laptop that gets the notification, but if one of those devices gets the message (race conditions not withstanding) then I don't want the other devices to get the message.

Or is it the case that if they weren't online they'd not be currently subscribed so they wouldn't naturally get it? In which case what happens if there are no current subscribers?

<comment><USER4> I was wondering about this also. I'm not sure if there is an acknowledgement system built into RabbitMQ, but it sounds like that is what would be needed for this to happen.

<comment><USER2> By default any message picked up from a queue by a consumer is removed (acknowledged), but you can configure the exchange so that it waits for an ACK from the consumer before removing the message. This gives the consumer the ability to return the message to the queue, but is dangerous because Rabbit will never stop waiting on the consumer to respond.

</comment></comment></comment></comment><comment><USER5> The thing about RabbitMQ is that it's so powerful and configurable that it scares a lot of people, but for trivial use-cases it is incredibly easy to get running. If you're using it as a message queue within your LAN (i.e. no direct external interface) then even the HTTPS configuration can be skipped, and all you need to do is create a user and an exchange and have at it.

<comment><USER6> Agreed. I use RabbitMQ on my iOS app's server ([https://www.letsgohomeapp.com](https://www.letsgohomeapp.com)) almost exactly for the OP's purpose; I drop outbound notifications to app users on a RabbitMQ queue and have a separate service which draws from that queue, processes them & sends them off to the correct destination, be it an email address or an iPhone via APNS.

RabbitMQ works great for this & is honestly quite easy to set up and integrate with (was trivial to get up and running in my app's Node.js backend).

</comment></comment><comment><USER7> As a non-developer, I'm curious what others are using RabbitMQ (and similar) for.

Examples that quickly come to mind are push notifications for apps, large e-mail blasts triggered when $event happens, etc. What are some things that you use this type of a setup for?

(As I said, I'm not a developer (network engineer and Linux guy) and I'm trying to think of use cases that would apply to my environment (ISP).)

<comment><USER2> A standard example uses a topic exchange for logging. A topic exchange will deliver messages to every queue with a _pattern matched_ routing key.

For example, you can bind three queues with routing keys where:

queue A = citical.log

queue B = warn.log

queue C = * .log

(Note that there should be no space after the wildcard) Then, when you publish a message to that exchange with the key "warn.log" it be delivered to queue B and C but not queue A. This is nice because you could have queue A sending you texts, calls, emails, bike messengers, etc when it gets a message; queue B just an email; and queue C just logging. Now, you're easily getting logging messages where they should go, at the same time.

Even better: let's say you want to add in a metrics system based on your logs. It's dead simple to tap into that log feed and get all of your log messages to process. Just add a new queue:

queue D = * .log

Now your new queue is getting copies of all of those tasty log messages as well.

Another quick example: at Updox we have an API that partners can call to send faxes. Part of this process involves converting the faxes to images for the user to view, building thumbnails, or otherwise heavy processing tasks.

Now, for scalability we could load balance more and more full blown web servers, OR we could pass the heavy processing tasks off to a Rabbitmq exchange and have a processing engine pickup those messages and process them. If we do the latter, then to scale we can just add another processing engine and tell it to listen to the exchange! As we grow, we can add as many processing engines as we need!

I think the question really is, what can't you use Rabbit for?

</comment></comment><comment><USER8> I just wanted to say RabbitMQ is an impressive product. Just looking at the features it supports (clustering, message types, federation, shovel) and the plugin ecosystem (STOMP+WebSockets, MQTT).</comment>


Myspace still exists - <AUTHOR> http://www.washingtonpost.com/news/the-intersect/wp/2014/06/02/myspace-still-exists-and-its-desperate-enough-to-blackmail-you-into-logging-in/

<comment><USER2> I don't understand why all the succer overpowered social networks like friendster and myspace still try to foster their own walled garden.

Why don't they put their effort behind a social network protocol that works across their platforms?

That way we could some day have a decentralized social network ecosystem that works just like email. I can choose a social network provider and still interact with other persons regardless on which platform they are.

The networks would then compete featurewise.

<comment><USER3> How soon we forget OpenSocial? Which MySpace was a big proponent of? (I guess not quite "distributed", but definitely "federated"; I definitely think it was in the spirit of your comment.)

<comment><USER4> Interesting, I never knew of it in the first place. It seems Atlassian have picked it up and are trying to make groupware out of it.

("groupware" = "social networking with co-workers that you have to use")

</comment></comment></comment><comment><USER5> A company that wants you to come back to it's site is now considered clingy?

It worked bc now I want to view my MySpace, just to see who my top 8 friends were and to see a snapshot of my life back then. Hopefully MySpace still has those features!

</comment><comment><USER6> I tried to read the article but on my mobile fifty percent of the screen is taken up by a fixed image advert making it very difficult to read.

</comment><comment><USER7> Myspace has been in it's current form for years, title is misleading.

<comment><USER8> We changed it. (The submitted title was "Myspace is back".)

</comment></comment><comment><USER9> Ok, but why?</comment>


Swipe Tinder Automatically - <AUTHOR> https://github.com/RikuHirose/tinder-node <comment><USER2> Taking about being desperate. Hitting in everything that moves. Oh my</comment>


A Month of "Hello, World" - <AUTHOR> https://magenta.as/a-month-of-hello-world-496a92b6cec3 <comment><USER2> I think this article would be more useful/interesting if it was extended to include language-specific things you found interesting, and specific pieces of expertise you gained in your usual working languages by exploring new ones rather than the rather generalised picture of the entire journey you've included.

<comment><USER3> Agreed. More information would be great, and there is some --> after some clicking you'll get to see some code and discussion.

Here are the "languages" and the code:

List of things to try: [https://github.com/hagata/30daysofHelloWorld/issues/1](https://github.com/hagata/30daysofHelloWorld/issues/1)

Code: [https://github.com/hagata/30daysofHelloWorld](https://github.com/hagata/30daysofHelloWorld)

<comment><USER2> I actually did look through the github, in hope of not posting a stupid comment.

It's useful, but still not really substantial in terms of what generally- applicable knowledge gains he made from specific languages.

<comment><USER3> Agreed.

</comment></comment></comment></comment><comment><USER4> >  _I now have experience with 30 additional technologies_

He probably hasn't gained anything.

" _Hello world_ " is useless and you're not learning anything with it, not even how to install the compiler or interpreter, because in a year from now the current distribution model might be obsolete already. And regular people can install apps too.

In my experience it takes about a year, at a minimum, to learn a language and absorb the concepts and best practices in its ecosystem. And if a language is so similar to something you already know that it takes less than a year and you don't need it urgently for anything in particular, then that's time wasted.

If in that set there are 10 interesting languages worth learning, then it will take the author at least 10 years.

<comment><USER5> Did you read the article? You certainly didn't look at the GitHub code he linked to. The R section, for example, creates a simple plot about deaths on the Titanic categorised by gender and cabin class.

I assure you he gained more than you did typing your condescending comment, and more than anyone did reading it.

<comment><USER6> The original author just called it, but phrased it in a more "hardliner" fashion. It would have been great if the blog post gave some deeper/original insight to read about, but it really does not. Calling the comment condescending a judgement too hard.

</comment></comment></comment><comment><USER7> A similar approach used to be pretty common in an intro to programming course for a CS major at universities at least 15-20 years ago.

Most homework assignments would be writing a very simple program in 5-6 substantially different languages (e.g., C, Scheme, C++, ML, Pascal). Knowing a number of different languages (and knowing that if needed I can pick a new one pretty easily) was very helpful, at least for me later on.

That said, 30 languages IMO is an overkill, as some are likely to be very similar -- one risks spending too much time on learning the syntax (e.g., commas vs semicolons) instead of getting exposed to fundamental language differences (e.g., closures and objects). My 2c.

</comment><comment><USER8> I also ran couple of such series:

2013: 30 technologies in 30 days [https://shekhargulati.com/30-technologies- in-30-days/](https://shekhargulati.com/30-technologies-in-30-days/)

2016: 52 technologies in 2016 [https://github.com/shekhargulati/52-technologies- in-2016](https://github.com/shekhargulati/52-technologies-in-2016)

</comment><comment><USER9> > My "aha moment" came around day 16, when I came to the perhaps obvious > realization that every Javascript framework is just someone's organized, > opinionated way of writing code.

About time! Everyone goes on and on and on about Javascript fatigue ... everyone fails to notice that every one of those framework do nothing new except changing how the same concepts are written.

</comment><comment><USER10> I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times.

-Bruce Lee

</comment><comment><USER11> Probably the Github repository is a better source of this experiment, because it actually contains some learnings from the author: [https://github.com/hagata/30daysofHelloWorld](https://github.com/hagata/30daysofHelloWorld)

</comment><comment><USER12> I too like learning other programming languages but I use programming praxis problems for that. I have some projects in my bitbucket: [https://bitbucket.org/amatheus_personal/](https://bitbucket.org/amatheus_personal/)

</comment><comment><USER5> Check this out: [http://www.99-bottles-of- beer.net/abc.html](http://www.99-bottles-of-beer.net/abc.html)

99 bottles of beer in all the languages.

<comment><USER13> RosettaCode has these for a lot of problems: [http://rosettacode.org/wiki/99_Bottles_of_Beer](http://rosettacode.org/wiki/99_Bottles_of_Beer)</comment></comment>