Radix Tempo whitepaper - <AUTHOR> https://papers.radixdlt.com/tempo/latest/#abstract <comment><AUTHOR> Found what I was most interested in from the FAQ[0]:

 _Can a bad actor take control of a shard?

With some difficulty - as the Radix universe is split into 18.4 quintillion shards, and your shard address is deterministic on your wallet address, you would need to continually cycle PGP key generation to get matching shard address keys. In addition to this there are several other sybil and spam attack prevention mechanisms to prevent even high numbers of malicious actors on a shard being able to reliably control or isolate honest nodes in a shard.

These mechanisms will be covered in more detail in the forthcoming v2 Tempo White Paper._

Seems like we'll have to wait for the v2 whitepaper for details.

[0] [https://www.radixdlt.com/faq](https://www.radixdlt.com/faq)</comment>


When algorithms surprise us - <AUTHOR> https://arxiv.org/abs/1803.03453 <comment><USER2> I think it was almost 20 years ago when I expectantly started the robot algorithm that had slowly been evolving for weeks.

I had already realized that I had to adjust the fitness function to give points for killing, not just surviving, since the first attempt had created robots that instead of skillfully picking off the opponents one by one - as I had envisioned - took speed for the nearest corner and then just sat there waiting to be killed by one of the other traditionally programmed robots.

I realized that the corner strategy made sense as they got the most protection there, but it was a bit unsatisfactory to watch...

In the second try the robots scurried to their usual corners, waiting to be killed, but this time firing randomly, occasionally killing one of their opponents by luck before they got hit.

The evolutionary algorithm sort of hit a plateau there, and besides I kind of wanted to use my computer for other things rather than spending days and days simulating robot fights.

But I learned two things:

* Evolution most likely is a thing.

* It's really really hard to write fitness functions...

<comment><USER3> So you were working on a lab proof of S.L.A. Marshall's Men Against Fire? ;-) [https://en.wikipedia.org/wiki/S.L.A._Marshall](https://en.wikipedia.org/wiki/S.L.A._Marshall)

</comment></comment><comment><USER4> It's important to make sure that what these algorithms actually produce is surprising to subject matter experts. I can recall, but can not find at the moment, a tumblr post where the blogger was surprised that a computer program which optimized a physical structure to minimize material while maximizing strength ended up looking organic.

This didn't surprise me at all. Organic structures evolved over millions or billions of years and probably are nearly optimal at accomplishing a particular task. I'd be surprised if the optimization software didn't produce something that looked organic.

It's not like the optimization software was better than actual organic structures either, which are neither isotropic (in organic structures the strength varies depending on the direction) or homogeneous (in organic structures the strength varies depending on the location) as the software had assumed.

</comment><comment><USER5> This article is actually providing select anecdotes from a more exhaustive paper: [https://arxiv.org/pdf/1803.03453.pdf](https://arxiv.org/pdf/1803.03453.pdf)

<comment><USER6> Ah, good catch. It was discussed here: [https://news.ycombinator.com/item?id=16600701](https://news.ycombinator.com/item?id=16600701). But maybe a second discussion isn't so bad.

We'll change the URL to that from [http://aiweirdness.com/post/172894792687/when-algorithms- sur...](http://aiweirdness.com/post/172894792687/when-algorithms-surprise-us).

<comment><USER7> The title is still the same as the original link, but I wanted to comment on the use of the term "algorithm" in this sense. I'm wondering if that's the proper term for the output of a machine learning algorithm, and if we shouldn't be calling it "learned behavior" instead. I just feel it disparages all the careful work of library developers and the like and cheapens an important field of study.

</comment></comment></comment><comment><USER8> I tend to believe life is universal. It may arise in a Turing machine that executes all possible programs one line at a time in parallel. It may arise in the subatomic realm... assuming sub-atomic particles exhibit sufficiently diverse complexity between 10^-35 and 10^-17 meters (a space unknown to us). It may arise between galaxies in the universe etc. We should view life more broadly.

<comment><USER9> Then I think that you would enjoy "Last and First Men and Star Maker" by Olaf Stapeldon.

Available quite reasonably at [https://www.amazon.com/Last-First-Men-Star- Maker/dp/04862196...](https://www.amazon.com/Last-First-Men-Star- Maker/dp/0486219623/ref=sr_1_1?ie=UTF8&qid=1523806615&sr=8-1&keywords=last+and+first+men+and+star+maker).

</comment></comment><comment><USER10> I'm also reminded of [https://blog.openai.com/faulty-reward- functions/](https://blog.openai.com/faulty-reward-functions/) (which I saw on HN a while ago), where an AI unexpected learned to

> turn in a large circle and repeatedly knock over three targets, timing its > movement so as to always knock over the targets just as they repopulate. > Despite repeatedly catching on fire, crashing into other boats, and going > the wrong way on the track, our agent manages to achieve a higher score > using this strategy than is possible by completing the course in the normal > way.

</comment><comment><USER11> Would be interesting to provide videos of the evolved robots rather than just the anecdotes.

<comment><USER12> The paper he draws the examples from has links to videos of most of the visually interesting examples.

</comment></comment><comment><USER13> Very interesting. 'Learning to Play Dumb on the Test' was the most surprising one to me, followed by the alien-turned-car that lead to 'novelty search' algorithms.

</comment><comment><USER14> > Sometimes I think the surest sign that we're not living in a computer > simulation is that if we were, some microbe would have learned to exploit > its flaws.

Someone needs to tell the author about quantum mechanics. It's not an unreasonable hypothesis to explain quantum effects as numerical errors in the Matrix.

<comment><USER15> It doesn't make sense for quantum effects to represent errors as much as it would for them to be "shortcuts" to save on power. This would be especially true if spacetime itself turns out to be quantized rather than continuous. Either way though, the probabilistic nature of QM on its own could represent a "fudge" factor I guess?

Truthfully simulation theory is uncompelling as a real theory, but very entertaining to contemplate.</comment></comment>


DarkMindFX – economic data provider for retail traders - <AUTHOR> http://www.darkmindfx.com <comment><AUTHOR> DarkMindFX - a "Bloomberg" service for retail traders and financial analysts.

We are brings the power of fundamental data to retail Forex/Stocks trader and analysts by aggregating and providing the official economical information from around the world. DarkMindFX uses official data sources in order to aggregate data and help to integrating it right into the terminals. Our solution providers simple, plug-n-play solutions for all major trading platform - MetaTrader, cTrader and NinjaTrader.

DarkMindFX gives and ability to use an information such as Commitment Of Traders (COT) reports, U.S. economic data, data from OECD database and many more to come. Traders and analysts can easily install and start using the charts and indicators in their every day analysis, trading and automated strategies.

We are constantly increasing the number of data sources and indicators provided by our platform. Join thousands of traders using our free indicators package - download the free Beta version!</comment>


Show HN: Jooseph – Playlists for Learning - <AUTHOR> https://jooseph.com/ <comment><AUTHOR> Hello Hackers,

We're Firat and Tolga, co-founders of Jooseph. We would like to show you Jooseph which is basically a platform where you can learn with a collection of links to different resources.

Me and my co-founder really like to learn new topics but nowadays, we can't escape from fluff content. Especially when you are just starting off a new topic. We were frustrated by the search process which is time wasting. Search Google, find the right keywords and then dodge all the fluff/seo content. Voila, we have just spent 2 hour and still have dozens of tabs opened in our browsers, hours of content waiting for us to read or watch them. Yet, still we don't know which content would be valuable for us and which won't. So we tried this concept of lists, it's like asking a friend, teacher or colleague for suggestions.

So, you can learn with modules curated from youtube videos, articles, essays, blog posts, podcasts and more. Also, you can curate your own module and share with others.

Some features Follow a curated list of different resources. You can like/dislike a content and this determines the total rating of that module. You can create weekly goals to finish your module. You can curate your own list and share.

I'll be around so I would be happy to answer your questions

Thank you,

<comment><USER2> This is pretty cool and I'm surprised it hasn't gotten more traction on HN. The value in this for me will be whether the curated lists contain good content. I've started one track and am enjoying the content so far.

<comment><AUTHOR> I am happy to hear that, if you have any question or any subject you want to learn reach me out at firstname.lastname@example.com</comment></comment></comment>


Microsoft – Limitations of apps and experiences on ARM - <AUTHOR> https://web.archive.org/web/20180217213023/https://docs.microsoft.com/en-us/windows/uwp/porting/apps-on-arm-limitations <comment><AUTHOR> Mobile Friendly:

\- Only ARM64 drivers are supported.

As with all architectures, kernel-mode drivers, User-Mode Driver Framework (UMDF) drivers, and print drivers must be compiled to match the architecture of the OS. While ARM OS has the capabilities to emulate x86 user-mode apps, drivers implemented for other architectures (such as x64 or x86) are not currently emulated and thus not supported on this platform. Any app that works with its own custom driver would need to be ported to ARM64. In limited scenarios, the app may run as x86 under emulation but the driver portion of the app must be ported to ARM64. For more info about compiling your driver for ARM64, see Building ARM64 Drivers with the WDK.

\- x64 apps are not supported.

Windows 10 on ARM does not support emulation of x64 apps.

\- Certain games don't work.

Games and apps that use a version of OpenGL later than 1.1 or that require hardware-accelerated OpenGL don't work. In addition, games that rely on "anti- cheat" drivers are not supported on this platform.

\- Apps that customize the Windows experience may not work correctly.

Native OS components cannot load non-native components. Examples of apps that commonly do this include some input method editors (IMEs), assistive technologies, and cloud storage apps. IMEs and assistive technologies often to hook into the input stack for much of their app functionality. Cloud storage apps commonly use shell extensions (for example, icons in Explorer and additions to right-click menus); their shell extensions may fail, and if the failure is not handled gracefully, the app itself may not work at all.

\- Apps that assume that all ARM-based devices are running a mobile version of Windows may not work correctly.

Apps that make this assumption may appear in the wrong orientation, present unexpected UI layout or rendering, or failing to start altogether when they attempt to invoke mobile-only APIs without first testing the contract availability.

\- The Windows Hypervisor Platform is not supported on ARM.

Running any virtual machines using Hyper-V on an ARM device will not work.</comment>


Monopsony in online labour markets - <AUTHOR> https://voxeu.org/article/monopsony-online-labour-markets <comment><AUTHOR> Abstract: _Monopsony refers to the market power that employers wield in labour markets. This column explores monopsony power in online labour markets, using observational and experimental data from Amazon's Mechanical Turk platform. Both datasets suggest an employer labour supply elasticity of close to 0.1, suggesting that a 10% reduction in wages would only see a 1% drop in willing labour. This points to substantial employer market power in a supposedly frictionless setting._</comment>


Ask HN: What are some ways companies spy on employees leaking data? - <AUTHOR> What are some practices that companies employ to prevent their employees from stealing/leaking sensitive company information.
I've heard methods such as
   - obviously hosts contacted by the client machine
   - using software to detect if information has been exported via USB
Can you name any others? <comment><USER3> The generic name for these types of solutions is DLP or data loss prevention. DLP solutions are common in regulated industries with finance typically having the most extreme forms of DLP solutions implemented.

1) DLP solutions for email and cloud storage: Office 365 and GSuite both have a bundled DLP solution. 3rd party solutions are also fairly comprehensive.

2) DLP solutions for workstations. This can range from sharing being disabled via MDM to DLP monitoring software (sometimes bundled in anti-virus) to some type of Desktop as a service solution (See techjuice's answer for more info on the last choice).

3) DLP server solutions, these can monitor for and disable certain sharing protocols. Most of the solutions are commercial (opendlp being an exception) and relatively rare out in the wild.

4) Network-based DLP. This can be a MITM proxy which all traffic goes through, common in financial firms. This can also include more basic solutions like firewalls blocking certain types of traffic or websites

5) Security monitoring solutions. This can be a SIEM solution which aggregates logs and looks for suspicious activity. Similar solutions are user behavior analytics systems which correlate historic user history, user roles and system information to look for suspicious activity. This type of system is essentially what Google's BeyondCorp Proxy is doing in the background.

6)Audit logs. This is primarily for tracking down who leaked data, but can serve as a preventive measure

</comment><comment><USER4> I take some issue with the use of the verb spy in this context. Merriam- Webster defines the verb form of Spy as "to watch secretly usually for hostile purposes." Spying has a negative connotation.

Is it really spying if employees are leaking data they are not supposed to? To me, leak implies unsanctioned or illicit.

<comment><USER5> Then perhaps it's not hostile when you know they're leaking the data, but in many cases wouldn't you need to observe them first to establish it and that could be deemed spying. In any respect, I'm sure we can get broad the idea of what the OP was after and focus on methods used, even if the specific term isn't everyone's cup of tea.

</comment></comment><comment><USER6> Easiest way is deployment of VDI (Virtual Desktop Infrastructure). Only allow specific keyboards and mice and disable any other USB functionality. This way there is no local data to download or need for upload directly on the system.

In terms of loss protection most companies use DLP (Digital Loss Prevention) technology and the system logs any activity of information leaving the system or entering a system (use of smartcards, usb drives (auto encrypting usb drives)) logging all contents burned to a disc, all emails going in/out of the system, etc.

With VDI normally there is a zero client with a keyboard and mouse and that is it. There is no local storage and everything the user interacts with is streamed to their desktop. If they need to upload something they will normally send it to the systems engineers for processing, this insures their requests only goes one way and they cannot download anything off the system.

If they need to send something they normally do it from their zero client and the server they are connected to processes their request. Normally with these setups the server and network infrastructure is extremely powerful to enable the ability for the zero client to appear faster than a regular desktop due to the server being able to deliver PCoIP otherwise known as DaaS (Desktop as a service)

</comment><comment><USER5> Ones I've actually witnessed in previous jobs rather than simply hearing of are: attempt to disable connection of USB thumb drives, restrict external website access, apply outbound email monitoring, keep important data on VMs + disable the clipboard.

The common theme was that they generally inconvenienced, as all had fairly obvious ways one might hypothetically evade them.

The sorts of steps LinuxBender suggests seem more sensible at a cost of being more invasive, it's just a matter of much the company is willing to go before it is impractical. Locking down the BIOS, encrypting the hard drive and isolating the computer in a secure room are the other points I'd expect, but that takes things to different level and it's less about regular employee situations then (so maybe getting off topic?)

<comment><USER7> Disabling clipboard and similar is common in "HIPPA" compliant software - <USER2> lot of which seems to be designed to reduce liability rather than help patients

</comment></comment><comment><USER8> Tiny yellow dots

[1]: [https://arstechnica.com/information- technology/2017/06/how-a...](https://arstechnica.com/information- technology/2017/06/how-a-few-yellow-dots-burned-the-intercepts-nsa-leaker/)

</comment><comment><USER9> Watermarks or small changes that encode the user accessing materials, such as small dots on printed material, or hidden metadata on electronic documents.

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

This also recently was made public that Xbox did the same with private builds of console software for people releasing youtube videos of unreleased software.

[https://www.gamerevolution.com/news/469221-how-microsoft- cau...](https://www.gamerevolution.com/news/469221-how-microsoft-caught- xbox-360-nda-breakers)

</comment><comment><USER10> Data Loss Prevention (DLP) overall and Deep Packet Inspection (DPI) in the Network. As an example, Look at products from McAfee/Symantec for DLP and Sandvine/Procera for DPI.

</comment><comment><USER11> Block all outbound communications and force all traffic through a MITM proxy. Disable USB on all company owned devices. Restrict network access to company devices (802.1x, etc..)</comment>


UN's partnership with Tencent at odds with its push for global unity - <AUTHOR> https://www.ft.com/content/192f8d60-ac18-415d-b700-78ce5735a5b6 <comment><AUTHOR> As the coronavirus pandemic rages on with no end in sight, the United Nations has announced it will partner with Tencent to celebrate its 75th anniversary — via video conference.

The Chinese tech giant and the UN say they want to have online conversations with millions of people across the globe about what the world should look like in 25 years, and the role of international co-operation in solving global pandemics such as the coronavirus.

The company, which owns the Chinese superapp WeChat, has the biggest social media reach in China. Its video-conferencing platform Tencent Meeting has more than 10m daily active users, while VooV Meeting, the international version of Tencent Meeting, is now available in over 100 countries and regions around the world.

But the UN's partnership with Tencent has given privacy campaigners cause for concern. For one thing, it means sending global conversation data — at some points unencrypted, and so visible to Tencent — through a country known for its invasive line on privacy. Like other Chinese tech companies, Tencent is required to comply with requests for user data from the Chinese government.

Beijing relies on the country's tech giants to help clamp down on diverse voices. In the initial stages of the coronavirus outbreak, Tencent censored information about the disease — a move that many argue may have limited the Chinese public's ability to protect themselves from the disease, which has now killed 3,335 people in the country.

The censored Covid-19 keywords covered a wide range of topics including factual information about the disease as well as both critical and neutral references to how the government handled the outbreak.

Meanwhile, the Chinese Communist Party is bolstered by a deep arsenal of vague laws on which it can draw to compel companies to aid it, including its national intelligence law, national security law, counter-terrorism law and cyber security law.

Moreover, global tech giants have a history of handing over data to the Chinese government. In 2005, for example, a Chinese journalist was sentenced to 10 years in prison after Yahoo allegedly helped the Chinese authorities to track him down.

In recent weeks, the growing privacy woes surrounding the US video- conferencing platform Zoom have illustrated heightened concerns western countries have over the exposure of their data to China.

In the same week that researchers at the University of Toronto's Citizen Lab revealed that Zoom was transmitting keys for encrypting and decrypting global meetings to servers in Beijing, groups including Nasa, SpaceX, the Taiwanese government and the New York City public school system all banned the use of the service.

The UN says that partnering with western platforms such as Google Hangouts or Facebook is not a viable option for its 75th anniversary, since the Communist Party blocks these services in China and the UN wants to reach as many people as possible. But conceding to a censorship barrier and opting for a partner known to stifle debate feels at odds with the event's premise of a "global dialogue".

Perhaps none of this may be of concern to an eager citizen of the world who wants to help mark the 75th anniversary of the United Nations by sharing their views on climate change or gender equality.

But international co-operation is fundamentally political. Last month, the UN became embroiled in Chinese politics when a top official at the World Health Organization, a UN agency, was asked by a journalist about Taiwan's WHO membership.

Taiwan has been praised by international experts for how its handling of the coronavirus outbreak has saved lives, but China, which claims Taiwan as part of its territory, has previously demanded that the UN exclude it from the World Health Organization on the grounds that it is not an independent state.

The official first refused to answer the journalist's question, then appeared to hang up on the video call. It could be a portent of things to come.</comment>


Researchers speak about life in troubled ancient-DNA lab - <AUTHOR> https://www.nature.com/articles/d41586-019-02540-5 <comment><USER2> I switched to working in academia in a genetics core (a four person team that provides services to labs at any university but mainly ours)

Choosing a lab is hard work, and some lab cultures based on stories from our Post docs are extremely toxic. The lab PI (lab boss's) attitude drives this. Because the way science works is very disfunctional people working for the PI are very dependent on them for advancing their careers. Science is very competitive with too few jobs in academia for the number of phds. If you PI isn't good it can be very trying.

<comment><USER3> Yes, often you go to a specific school to work in a specific lab, and to leave the lab would mean either leaving the school (to go to one of the other people on your area of study) or leaving your chosen are of study. Makes it easy for people to just take abuse.

Plus its not like a regular job where you can quit on a random Tuesday and have a new job two months later. It's an annual hiring cycle. This gives more time for people to acclimate to various abuses, and be more likely to stick around.

</comment></comment><comment><USER4> I didn't see much evidence in the article. However, from the sound of it he's both dismissive and rude to others who are working on (from his perspective) less important work. There also appears to be a pattern of this behavior.

IMO makes sense to have a discussion, then if it continues a suspension, possibly required trainings.

This honestly sounds pretty mundane in terms of a story, as the standard steps are being followed. Also appears it's just like an arrogant, abrasive boss, which most of us have unfortunately experienced.

<comment><USER5> > he says he decided to leave because Cooper bullied him, included yelling, > swearing and intimidation.

One person's dismissive and rude might be another person's intimidation.

I think this is the tricky part. I think almost everyone has been bullied at some point in their life, but that doesn't mean all bullying is equal.

Of course Cooper was smart enough to not physically strike someone, or physically threaten them, so it's just words.

But I feel like it is easy to normalize bad behavior just because the rest of industry thinks we should put up with brilliant jerks, and it can be hard to figure out where on the spectrum we are with the generic evidence talked about. I'm not sure if that's because legal cases are still pending, or that it wasn't interesting enough to make the article.

Many times, I think this kind of behavior has to be looked at on a case by case basis, with words actually said. Sometimes seeing bullying on video, for example, makes it obvious that someone is being overly aggressive and hostile by showing body language, and having tone of voice, etc.

I think talking about bullying in articles like this without specific quotes always makes it feel rather vague, distant, and hard to put into context.

All that being said, I'm not sure if I believe that any amount of trainings or discussions really change that behavior. I think most people are the way they are. They may learn to hide it better though end up accomplishing the same thing. Which is how we end up in the pernicious cycle we are, where people are following the letter of the law, but not the spirit of the law.

</comment></comment><comment><USER6> It sounds like the worst thing Cooper is being accused of is yelling at people. That's pretty common and I'm surprised that he would be suspended for that alone. Surely there's more to the story, right?

<comment><USER3> There are different kinds of yelling at people, some more tolerable than others. But no kind of yelling at people is appropriate at work.

<comment><USER7> I can imagine situations where 'don't push that button' or whatever is appropriate to yell.

<comment><USER3> There are exceptions to every rule. Don't yell at your coworkers I think is a pretty strong guideline though.</comment></comment></comment></comment>


DynoRoot1111 (CVE-2018-1111) - <AUTHOR> https://dynoroot.ninja <comment><USER2> Oh. My. Gosh.

> Powered by 0day.marketing > 0day marketing services for security researchers

This is literally the single most unprofessional vulnerability announcement I've seen in my 15 years in the field.

How does it offend me? let me count the ways:

1) a song?

2) 'Details' links to a tweet without any actualy said 'details'

3) a song?

4) The page appears to be completely unassociated with the actual researcher who found the vulnerability

The more I look at this the more I think this _has_ to be a parody. Someone please tell me it's a joke.

Ok, it's a joke. Right? Please?

<comment><USER3> It's a joke. Here's how it was done:

1\. Write a song.

2\. Find a real and recent CVE.

3\. Make a website that satirises branded security vulns and refer to said real CVE.

4\. Don't forget about that song. It's catchy!

</comment></comment><comment><USER4> Honestly, I can't tell if this is satire just from reading the article.

Had to google the CVE number to find out that it's just a incredibly unprofessional "named CVE" announcement page, or as I like to call them "I found a bug and this is going on my resume".

Link to the actual CVE page: [https://access.redhat.com/security/cve/cve-2018-1111](https://access.redhat.com/security/cve/cve-2018-1111)

EDIT: I can't decide if the absurdism of the site is hilarious or annoying. Whoever put this site together must be proud.

<comment><AUTHOR> >Honestly, I can't tell if this is satire just from reading the article.

Perhaps you need to listen to the song? [https://dynoroot.ninja/dynoroot.ogg](https://dynoroot.ninja/dynoroot.ogg)

</comment></comment><comment><USER5> Wow, these comments make me sad - this is pretty clearly satire (although the vulnerability is real and pretty scary). Did the "DynoRoot!!!1111" really not give this away? :)

</comment><comment><USER6> Why is every security exploit or bug getting a name, marketing website, and branding? This one even has a song... What?</comment>


High-performance automatic game recording (LoL, CS:GO, etc.) - <AUTHOR> https://lowkey.gg <comment><AUTHOR> Hey everyone, I'm one of the main creators of the app. For all the gamers here, the app allows you to automatically record the gameplay vods for whatever game you're playing (especially during these quarantined times).

The premise is simple: you can record high-quality videos with no impact on the performance in your game. Then, we give you nice tools to clip and upload videos to share with friends or review in our online portal.

For certain games (more coming soon), the app detects when your game starts/ends so it'll automatically capture the vod without you having to think about it.

Let me know what you think!</comment>


Ask HN: Why did you do/or not do startup school? - <AUTHOR> Just curious about the experiences people had in the 11 week startup school program by YC. <comment><USER2> I have a software startup and was in SS in 2017 with an assigned mentor and a second time in 2018 but without an assigned mentor. The 2017 SS experience was a lot better because of two things: 1. My cohort of startups was quite involved in meetings and forum discussions 2. our mentor has an agenda for weekly group meetings and gave every group a chance to talk about their progress. It comes down to these two things -- cohort and mentor -- and YC picks them for you, so YMMV.

</comment><comment><USER3> It keeps you focus on the one thing that matters: improving your (single) core metric. It's good because you're in a group of other people very committed. Personally, I'm doing it for the 3rd time and I'd do it even with just a side project.

</comment><comment><USER4> Side question on this topic: has anyone running a non-tech startup attended this, and if so how useful was it? And what was the experience like?</comment>


Pandemics and Political Development: Legacy of the Black Death in Germany - <AUTHOR> https://preprints.apsanet.org/engage/apsa/article-details/5ebb571445a38d00180f6185 <comment><AUTHOR> Abstract:

Do pandemics have lasting consequences for political behavior? We address this question by examining the consequences of the most deadly pandemic of the last millennium: the Black Death (1347-1351). Our claim is that pandemics can influence politics in the long run if they impose sufficient loss of life so as to augment the price of labor relative to other factors of production. When this occurs, labor repressive regimes (such as serfdom) become untenable, which ultimately leads to the development of proto-democratic institutions and associated political cultures that shape modalities of political engagement for generations. We test our theory by tracing out the local consequences of the Black Death in German-speaking Central Europe. We find that areas hit hardest by the pandemic were more likely to: (1) adopt inclusive political institutions and equitable land ownership patterns; (2)exhibit electoral behavior indicating independence from landed elite influence during the transition to mass politics.</comment>


What acronyms and abbreviations in source code are sensible? - <AUTHOR> I'm thinking things along the lines of "num" for "numberOf" and "max" for "maximumOf". <comment><USER2> It depends. For example, if you are writing code using HMMs the following would be adequate:

        while True:
            pi1 = dot(A, pi)
            if norm(pi - pi1) < eps:
                return pi1

Because whoever is reading the code can be expected to know what pi, pi1, A, dot, eps and norm are from context. I usually write some comments at the top of the module in case things could be unclear. Then I use short names wherever possible; subst for substitute, tmpl for template, expr for expression and so on. But you have to experiment yourself and see what fits your style and programming strength -- there are no hard and fast rules.

</comment><comment><USER3> Whatever all the contributors can agree on, keeping in mind there may be future contributors e.g. new starters.

So if it's a solo project anything goes.

If it's going to be maintained by a big team long term then be conservative.

</comment><comment><USER4> Anything, although if it is unclear then comments can be helpful to clarify it.</comment>


Ask HN: Have you moved to a less technical role after failing as a developer? - J-dawg After a few years of working as a frontend developer, I'm trying to come to terms with the realisation that I have very little aptitude for writing code.
I seem to lack any kind of problem solving ability. I can get stuff done when it fits standard patterns/boilerplate, but anything more difficult and I fail quickly and give up.
I seem to have got by for the last few years by being likeable enough that people are happy to pair with me and basically do the work for me.
I've realised it's affecting my self-esteem pretty badly. I almost never go home feeling like I've achieved anything. I'm scared of not being able to find work in the future. This is in contrast to the people I've worked with who always seem very optimistic about finding new roles etc. I'm not young either (approaching 40) and have no other skills.
I'm starting to think my best hope is to try to stay in this industry but move into something like business analysis or product management. I'm quite concerned about how such a move would be perceived. If I was hiring I'd run a mile from someone who wanted to change careers simply because they failed at their last one. Is there a way to spin this into something positive?
I would love to hear if anyone else has gone through what I described and managed to move into a different role, and how you managed to spin your situation and emphasise the positives. <comment><AUTHOR> Here's the secret -- a good team is built around people who are solidly dependable. What that means is you can give a reasonable estimate for the work, are a positive person, and aren't too much of a bother to anyone. The team is pushed forward in meaningful ways by the really ambitious and smart ones, but they tend to move on quickly after becoming bored. These people are great to have while they are there, but they leave so often that it feels like a revolving door.

But that employee who I can give work to and depend on to be there in a year plus time frame? That's the one a good manager goes to bat for during the tough times.

</comment><comment><USER2> Have you worked at more than one place in your Developer career? Sometimes it could just be you don't enjoy what you're doing on the current job. For instance, I previously did some DevOp-at/infrastructure work and I really questioned my technical ability, but once I got back to front end development again I felt energized by my work, my self confidence went up, and I have more genuine interests in learning more about it. It could also be you just don't enjoy the type of development you're doing. There are many paths to go even for technical roles.

</comment><comment><USER3> Is it possible to take on other kinds of tasks at your current company? No company is perfectly efficient, so figure out where they are struggling to perform and lend a helping hand. Best case scenario is you realize you're quite good at whatever you try doing, worst case scenario is you've helped out another team.

</comment><comment><USER4> Have you ever completed any sort of ambitious project on your own? Let's 10-50k lines of code, that correctly does something nontrivial? If yes, then you're suitable for the job. If not, you should perhaps try it (it will require leaving the job for a while). If you genuinely cannot complete it, then you have your answer, but if you can, it will give you lots of skills for the next role (you learn much more when doing things on your own vs being in a team) as well as a confidence boost.

</comment><comment><USER5> I'm sort of going through this dilemma. I'm not a superstar level and probably do better in other roles.

One trick is to go into teaching. It requires considerably less problem solving skill. You just solve a set of problems once then reuse that solution for the next class. You'll still have enough industrial experience to teach better than most.

One thing I'm trying is to switch to similar but junior technical roles. Try game development maybe, or something like testing, system analysis, support.

</comment><comment><USER6> There are plenty of tech roles where you don't have to be a superstar dev but can't still make out fine. Support is a good one - sneered at by many but actually incredibly important and can be really fulfilling in the right role (granted low level support roles can be horrendous). So many users get shit support that if you really put them first they will come to love you. There are also roles that combine support with a bit of sys admin, service engineer type roles. Can be well paid on the contract side of things.

If you are or can learn to be creative and enthusiastic and personable, presales can be fun. In most presales roles the emphasis is on broad rather than deep skills, so that might suit you. For me presales was brilliant because it forced me to confront my fear of public speaking.

Finally I've met loads of successful people in my career that cheerfully admit they couldn't hack the technology side of things. Chin up!

<comment><USER7> >I've met loads of successful people in my career that cheerfully admit they couldn't hack the technology side of things. Chin up!

I think one nuance is that some people don't have the interest/skills to be a developer, but a number of people are decent developers but they get tired of the environment developers exist in. So when they say "I coudn't hack it as a developer" it wasn't so much about skills as much as personality.

</comment></comment><comment><USER8> First off, this is a personal question so you don't have to answer it, but I encourage you to think it over. How are you doing mentally/emotionally? I don't know you so can't make many guesses as to your writing style, but you sound really seriously down on yourself.

I bring that up because career transitions aren't uncommon, but you need some confidence to make it happen in an interview. There is a huge difference between "I failed" and "I am better suited to something else."

If you're in the middle of it and feel like shit, it's hard to see your gifts. But from an outsider's point of view, being likeable enough that others will gladly help you is a major strength. Add in some above average technical skills and you'd be fucking dangerous in all kinds of roles. You're even a good writer - it's a tough subject but you conveyed emotion and a strong voice.

Best of luck and be safe.

<comment> J-dawg Hi,

Thanks for taking an interest in my question. It's truly appreciated.

I had to laugh at your comment about being down on myself as I've heard the same thing from several people, including colleagues. I was trying to steer away from from that self-pitying tone but I guess it still came through!

So yes, confidence has been a huge problem for me, and probably the biggest barrier to overcome if I'm ever going to get a more "business facing" role.

I'm seeing a therapist and trying to do something about it, but changing an entire personality seems to be pretty tough.

Thanks again for taking the time to reply.

<comment><USER8> Thanks for writing me back!

I'm glad that you're seeing a therapist and since you're seeing someone, I'm quite concerned about contradicting you. However, I don't agree that your post was self pitying. It was well written, balanced and showed a heck of a lot of insight into yourself. If that's self pitying, I know a lot of people (myself included) who could use a good dose of self pity.

As far as confidence, it sounds like you've been through a heck of a lot. Thanks to my own meandering experience, I understand how job stress can sap away at your confidence.

Again, I don't know you from Adam, so take this as you will, but I'm an outsider and can see a whole lot of strengths. As I mentioned, you're an excellent writer. In a few hundred words, you have managed to convey some interesting parts of your personality. For one, you strike me as a heck of a nice person. Second, you have one heck of a lot of insight into yourself. Third, I have an immense amount of respect for how you don't blame anyone or make excuses. That shows a tremendous strength of character.

Finally, you're fucking brave. Seeing a therapist is damned hard. Coming on here and being as open as you have been is damned hard as well. At this point, courage will only serve you well.

Between those things, I honestly wonder if you're perhaps better than you think. You strike me as one of those glue developers who may not be the strongest IC, but who multiplies your team's performance.

But, assuming that you're correct and you're not as good as you would like, if I were in your shoes, I would focus on positive things and start writing some cover letters. If your personality shines on a cover letter as it does on this thread, I might be asking you for a job in a couple of years. :)

</comment></comment></comment><comment><USER7> There are a lot of people who realized being an SWE/Developer was not the right choice for them. This is for lots of good reasons - not having enough interaction with other people, feeling too insulated from the outside world, not liking the day-to-day life of a developer, etc.

I've worked with ex engineers who are now in Sales, Marketing, Support, Management (Product and People), Education, etc. Some of them are amazing at what they do. One of the best developers and I know moved to the education team in their software company because they got tired of what it meant to be a developer. In that education team they can't release crap just because somebody decided to release something quickly - this was something they got disillusioned with as a developer.

You haven't "failed" as a software developer. You're probably just realizing that being a software developer may not be a fit. Nobody will fault you for changing to a different role. Anybody who has worked for longer than 5 years knows that after some point you need new and different challenges. Nobody will see you as a failure unless you say "I failed as a software developer so I want to do something else." Say "I've been doing this for a line and I want to do something different. Since I was a developer, these are the strengths I bring to the role versus somebody who has never developed anything in their life."

I say this for myself. I enjoy writing code and I think I'm a decent developer. But the thought of being behind the firewall (basically where I only interact with other people in Engineering, not users) of an Engineering Org just doesn't sit well with me. That's how I ended up in Data Science, where I interact with a lot of people and still write code.

A long time ago I took a career counseling course and the teacher (A PhD researcher in Career Counseling) said people typically change their careers 6 or 7 (don't remember the exact number) times in their life. It was hard for me to understand at the time, but after many years of working it makes sense. Some people change their career 5 times over 20 years at the same large company.

</comment><comment><USER9> I've been hearing more and more as time goes by that development skills don't always necessarily include actually writing code. Following a shared process, breaking problems down, collaborating to find potential solutions, and evaluating the merits of candidate solutions are all "software development" but not "coding". You're on a team. The team has diverse talents. It's totally different than sitting alone in your basement writing the next hit indie game where you are the only one that can or will do any of it.

Have you asked the good coders you've paired with if they enjoy coding with you? Maybe you're a lot more useful and talented then you think.

</comment><comment><USER10> Honest question - how do you go 40 years and realize this now? I assume you've been doing this for your whole working life.

<comment> J-dawg I came to programming pretty late, a few years ago. So I haven't been doing this my whole working life.</comment></comment>


Free drag and drop email templates builder - <AUTHOR> https://mysigmail.com/card/ <comment><AUTHOR> Hi folks! MySigMail Card developer there

MySigMail Card is a free drag & drop builder helps you create email templates intuitively and very quickly. No need to register or create an account.

Features:

\- 50+ pre-designed components in categories: Menu, Header, Content, Feature, Call to action, E-Commerce, Footer \- Content editing in components \- Uploading external images \- Live preview \- Project management \- Support email clients: the templates have been tested to render across major email clients, with support on popular web, desktop and mobile platform \- Export the ready-made, compatible with any ESP, email template

Stack:

\- Vue \- Vuex \- IndexedDB

It's free!

I'd be happy to get any feedback</comment>


96-core ARM supercomputer using the NanoPi-Fire3 - <AUTHOR> https://climbers.net/sbc/nanopi-fire3-arm-supercomputer/ <comment><USER2> Doesn't seem practical. It might be useful as a learning-framework for MPI / Supercomputer programming... but it wouldn't be a tool that I'd use personally.

A practical baseline for anyone interested in ARM-compute, would be the Thunder X CPU (Cloud rental: [https://www.packet.com/cloud/servers/c1-large- arm/](https://www.packet.com/cloud/servers/c1-large-arm/)). 48-cores per socket, 2x for 96-core servers.

As another commenter said: the primary use of this NanoPi is the ability to emulate a "real" super-computer and really use MPI and such. MPI is a different architecture than a massive node (like a 96-core Thunder X ARM), and you need to practice a bit with it to become proficient.

<comment><USER3> > emulate a "real" super-computer and really use MPI and suc

Wouldn't containers be a easier way to do that?

<comment><USER2> No. Containers on a single node are too fast.

Super-computers have high-latency communications through thick pipes. True, Super Computers have 40Gbit or 100Gbit connections between nodes, but it can take multiple microseconds to send messages around.

A bunch of containers all sitting on the same box would be able to handle communications within dozens of nanoseconds. So its a bad "emulator" for SuperComputers.

Coordinating all your nodes to compute a problem, while achieving high utilization, is tricky. Its not like programming a normal computer where threads share RAM and can communicate in nanoseconds.

<comment><USER4> > No. Containers on a single node are too fast.

You can add artificial delay to your local container network to better simulate a production environment.

For example using [https://github.com/alexei- led/pumba](https://github.com/alexei-led/pumba) and "pumba netem delay" you can add networking delay between Docker containers, and "pumba netem rate" can limit the bandwidth between them as well.

("pumba" is just using the underlying Linux networking traffic control technologies, such as the "tc" command from "iproute2", so you don't have to use "pumba", you can set this up manually, but a tool like "pumba" makes it a lot easier.)

<comment><USER2> I've used netem to emulate millisecond delays before. But I'm not sure if it has the granularity to emulate micro-second level delays.

Basically, netem is designed to provide milliseconds of delay, emulating a worldwide network. Supercomputers are thousands of times faster than that. I'd have to play with netem before I was certain that it could handle a sub ~10uS delay that supercomputers have node-to-node.

Considering that Linux task-switching is on the order of ~10mS or so, I have severe doubts that uS level delays will work with netem.

The NanoPi-Fire3 uses normal Gigabit Ethernet, which probably has latencies in the ~50uS region. Which is slower than a real supercomputer, but "proportionally" should be representative of supercomputers (since the tiny embedded ARM chips are around 50x slower than a real supercomputer node anyway).

A bunch of Rasp Pis on Gigabit Ethernet seems like a better overall "cheap supercomputer" architecture, for students of supercomputing. Better than containers or software-emulated network delays

</comment></comment></comment></comment></comment><comment><USER5> 60 GFlops on 96 cores is not that large.

OTOH if you want to see how your massively parallel algorithm behaves on a 96-node cluster / network, such a box is just $500, and is portable and can work offline.

<comment><USER6> The comparisons by GFlops was more or less a lark. Especially the ones comparing energy efficiency with a supercomputer from the 90s. This 96 core rig produces 1 GFlop per Watt, compare that to an i9-9900k (250GFlop), z390 chipset and 1 stick of DDR4 (95W + 7W + 2.5W = 104.5W) which does ~2.3 GFlop per Watt.*

* this is back of napkin, real world results will vary

<comment><USER7> I think the i9-9900k has a real-world sustained power draw of around 170W, actually: [https://www.anandtech.com/show/13400/intel-9th-gen- core-i9-9...](https://www.anandtech.com/show/13400/intel-9th-gen- core-i9-9900k-i7-9700k-i5-9600k-review/21)

Add in all the ancillary hardware (motherboard, memory, hard drive, PSU losses) and that efficiency number is going to take a nosedive.

<comment><USER8> That page is embarrassingly wrong about how power management works in Intel CPUs. By default Intel CPUs will not allow their rolling average power consumption over a period of ~1 minute to exceed the specified TDP (95 W in this case). Once the limit is reached the CPU reduces its frequency to bring power consumption down. Intel optimizes their CPUs to achieve a good balance between efficiency and performance when operating at the TDP.

What you see in Anandtech's review is the result of motherboard firmware effectively disabling the power limit by setting it to a very high value. This is a common practice among enthusiast motherboards in order to boost scores in reviews. Unfortunately it also results in drastically lower power efficiency and lots of clueless people, including many tech writers, complaining about unrealistic TDP numbers.

<comment><USER7> > By default Intel CPUs will not allow their rolling average power consumption > over a period of ~1 minute to exceed the specified TDP (95 W in this case).

From the page in question: "In this case, for the new 9th Generation Core processors, Intel has set the PL2 value to 210W. This is essentially the power required to hit the peak turbo on all cores, such as 4.7 GHz on the eight-core Core i9-9900K. So users can completely forget the 95W TDP when it comes to cooling. If a user wants those peak frequencies, it's time to invest in something capable and serious."

95W is the required power to sustain the base clocks.

Also, calling AnandTech clueless... Are there any better hardware review sites? I would consider them a tier 1 site, with HardOCP and not a whole lot else...

<comment><USER8> Like I said, the Anandtech article has a lot of inaccurate information in it. Unfortunately the quality of tech journalism has taken a dive the last few years as most of the good writers have been hired away by the very tech companies they used to cover.

See this article on Gamers Nexus for a much better summary of the power consumption situation for Intel CPUs

[https://www.gamersnexus.net/guides/3389-intel-tdp- investigat...](https://www.gamersnexus.net/guides/3389-intel-tdp- investigation-9900k-violating-turbo-duration-z390)

<comment><USER7> AnandTech actually has a new article on Intel TDP limits out today: [https://www.anandtech.com/show/13544/why-intel-processors- dr...](https://www.anandtech.com/show/13544/why-intel-processors-draw-more- power-than-expected-tdp-turbo)

I would find it hilarious if this conversation somehow prompted it.

Anyways, AnandTech's position seems to be:

We test at stock, out-of-the-box motherboard settings, except for memory profiles. We do this for three reasons -

1\. This is the experience almost all users will have.

2\. This is what the benchmarks published by Intel reflect.

3\. This is what damn near every other review site has done forever, and to do otherwise would make results less useful.

So that's why their power draw number was 170W and not 95W for the i9-9900k - motherboard vendors take Intel's recommended settings and laugh. But so does Intel for benchmarks.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Can these NanoPis boot over PXE? I was pleasantly surprised a few weeks ago by the fact that the Raspberry Pi can do network boot without an SD card.

</comment><comment><USER10> What's fascinating in that article is to see that a Raspberry Pi 3 has about 10% of the floating-point processing power of a Cray C90...

Cue the many forum questions: "I'm planning to use a Raspberry Pi to control a <simple-ish device>. Will it be powerful enough?"

<comment><USER11> The real question is "Will it be powerful enough even though I use a Desktop operating system and a software stack designed for programmer comfort rather than efficiency to control <simple-ish device>".

</comment></comment><comment><USER12> > The NanoPi Fire3 is a high performance ARM Board developed by FriendlyElec > for Hobbyists, Makers and Hackers for IOT projects. It features Samsung's > Cortex-A53 Octa Core email@example.com SoC and 1GB 32bit DDR3 RAM

Who needs such a powerful CPU with so little RAM? The reason I have still not bought any Pi is all of them have 2 or less GiBs of RAM and I don't feel interested in buying anything with less than 4.

<comment><USER13> You'd be wanting to look into ARM-64 boards like the ROCKPro64:

[https://www.pine64.org/?page_id=61454](https://www.pine64.org/?page_id=61454)

There's others that are pricier (> $100) with x86 arch the UDOO boards if you really want a SBC with much more RAM too.

</comment></comment><comment><USER14> I've been trying to do something similar with 4 Orange Pi Zero Plus boards (this blog was one of my main inspirations). While I know it's not practical, it's fun to design the case and the stand, how everything needs to connect, and route it all together. I hope to in the end host a distributed personal website on it and a MQTT server on it for any IoT tinkering I'd want to do!

</comment><comment><USER15> Significantly cheaper than the 24-core (also A53) SynQuacer Developerbox. But of course you're getting a cluster instead of one machine…

</comment><comment><USER16> Nice! Distcc based compilation might be something to try on this. :) One thing I noticed is that heatsink fins are oriented in a wrong direction. Air should be going through the fins, not to the side of them. But I guess any air movement is enough to cool this.

<comment><USER17> Here is a simple study on distcc, pump and using of the make -j# option on low end hardware. It seems that the network could be a bottleneck. The compilation time probably would decrease to 1/4\. But I think the use of -j# is the best advice.

[https://forums.gentoo.org/viewtopic-t-1056580-start-0.html](https://forums.gentoo.org/viewtopic-t-1056580-start-0.html)

</comment></comment><comment><USER18> The only supercomputer they compare it to is 27 years old, and it uses Gigabit Ethernet as its interconnect. I think they have a much looser definition of 'Supercomputer' than most people.

<comment><USER19> It's a few SoC crammed in a shoebox. Of course the comparison was never meant to be taken seriously.

</comment></comment><comment><USER20> I wonder what topology this has--it definitely seems reminiscent of older supercomputers like the famous Thinking Machines CM-5, which used a hypercube.

<comment><USER21> Probably nothing interesting.

There are two 8-port ethernet switches.

With 12 nodes, this leaves 4 unused port (2 in each switch).

From the pictures you can see that the box itself has two jacks, both of which are likely connected to one switch each.

The switches don't seem to support link aggregation, so likely to look like this:

        switch1
        ├── external
        ├── nano-pi1
        ├── nano-pi2
        ├── nano-pi3
        ├── nano-pi4
        ├── nano-pi5
        └── nano-pi6
        switch2
        ├── external
        ├── nano-pi7
        ├── nano-pi8
        ├── nano-pi9
        ├── nano-pi10
        ├── nano-pi11
        └── nano-pi12

and if you connect both the switches to the same external switch, you'd get something like:

         switch1
        ┌┼── switch2
        │├── nano-pi1
        │├── nano-pi2
        │├── nano-pi3
        │├── nano-pi4
        │├── nano-pi5
        │└── nano-pi6
        │switch2
        └┼── switch1
         ├── nano-pi7
         ├── nano-pi8
         ├── nano-pi9
         ├── nano-pi10
         ├── nano-pi11
         └── nano-pi12

</comment></comment><comment><USER22> This is cool! But why test on this instead of using a virtual environment locally?

<comment><USER23> Unless you have 96 physical cores testing it in a virtual environment doesn't tell you the same thing.

<comment><USER8> A bunch of Pis networked together is sufficiently far removed from a real HPC cluster that you could probably create a more realistic simulator without too much trouble.</comment></comment></comment>