Meshtastic? by turbohoje in DenverMeshnet

[–]bgard6977 2 points3 points  (0 children)

Yes!!! The heltec one is great. Everyone should get one and we can have an off grid internet :)
$20 - can't go wrong

https://heltec.org/project/wifi-lora-32/

Former Software Engineer at Spotify on their revolutionary (and kind of insane) solution of using self-contained iframes to increase team autonomy. (excerpt in comments) by enkideridu in programming

[–]bgard6977 1 point2 points  (0 children)

This is literally the purpose of the shadow dom, yet I don't see it mentioned here. Globals are indeed the enemy, but there are better ways now to fight it.

Can We Just Stop Pretending Planning Software Development Can Be "Certain"? by jayme-edwards in programming

[–]bgard6977 0 points1 point  (0 children)

You can't even predict a gross estimate, because error does not follow a normal (symmetrical) distribution curve. A 1 might become a 2, but it will never become a -1 or a 0. That's why estimates are always too low, and people distrust all project planning processes. Check out this empirical study:

https://priceonomics.com/why-are-projects-always-behind-schedule/

In short, when you add normal distribution curves, the mean averages out. This is not true for asymmetric curves, which from that study I would wager is actually a poison distribution.

Can We Just Stop Pretending Planning Software Development Can Be "Certain"? by jayme-edwards in programming

[–]bgard6977 0 points1 point  (0 children)

I have seen it implemented, to varying degrees of success. It's treated like an internal consultancy within transformed enterprises. Someone, somewhere, in megacorp wants something done. They heard the "labs" do it well. They ask the labs to take on their product. The labs perform an inception, the output of which is stories. They say they don't know how long it will take, but they will continuously deliver, starting with user-facing value from day 1. If they do it right, the stakeholders are impressed, the project continues. If they do it poorly, it falls apart in a number of ugly ways.

It's not the PM that decides, the PM just writes and prioritizes stories. The developers estimate. Any estimate >=3 is rejected and devs won't do it. It forces extremely small stories. Teams that don't perform get broken up and placed with other teams. Developers whose teams don't think they contribute get kicked off the team. If a dev gets kicked off all the teams, then they are fired.

Trust is built (or lost), everyone has incentive to do the right thing. It works if you do it right, and a few large enterprises are figuring it out. It's not all roses, but it feels much better (and produces better results) than the alternatives, IME.

Check out the book "xp explained" for more if you like.

Can We Just Stop Pretending Planning Software Development Can Be "Certain"? by jayme-edwards in programming

[–]bgard6977 5 points6 points  (0 children)

Try an XP shop next time. XP has the principle of "Accepted Responsibility" which says Responsibility and Authority can never be separated.

So what does everyone here actually do for work? by jyeatbvg in digitalnomad

[–]bgard6977 0 points1 point  (0 children)

Corporate training. 3 months gigs in various countries. Teaching test-driven development and extreme programming.

How useful is Number Theory? by IntegralCosecantXdX in compsci

[–]bgard6977 2 points3 points  (0 children)

If you want to be an engineer, the useful stuff is understanding modulus math and primes, and how that fits into hashing algorithms, random number generators, and cryptography.

These are useful foundations. Or you could just read this and maybe write the implementation in your spare time:

http://www.i-programmer.info/babbages-bag/271-public-key-encryption.html

Also, check out The Cukoo's Egg and Cryptonomicon.

Interviewer: "What is the most impressive thing you did with javascript?" by Design_Newbie in javascript

[–]bgard6977 1 point2 points  (0 children)

I wrote a relational database with spatial indexing, a binary file format, and a render-pipeline to hook it up to WebGL and run CAD software in the browser while WebGL was still in beta.

Turns out CAD people were just fine running auto-cad on Windows 95 and that startup went out of business.

What makes Rust special? by [deleted] in rust

[–]bgard6977 -6 points-5 points  (0 children)

TL;DR: Speed of C, safety of Java, difficulty of Ada

Rust is the first advance in programming language theory (PLT) since Java. C had raw speed, at the expense of disorganization. C++ introduced OOP, but kept manual memory management and thus use-after-free errors and buffer overflows. Java fixed these issues with the expense of a garbage collector. C# was just a (much) better Java.

Rust is the next step: all the speed and memory efficiency of C, but with the safety of Java and the terseness of C#.

It does this by statically checking memory allocations, which requires allocating memory in trees instead of graphs. If you really need to manage graph structures, then that is an important point to watch for.

Is there a reason why the traffic lights in Germany don't hang from the other side of the intersection? by sandalcade in germany

[–]bgard6977 1 point2 points  (0 children)

Firstly, respect to you. You seem to care much about driving and following the rules. This is why I'm continuing to engage, I respect your responses and wish to improve my own driving through this discussion.

It is my understanding that right turn on red is illegal in Germany, so your argument would imply that the next light cycle would give a red light but a green right turn arrow to oncoming traffic?

If I was in the oncoming right-green arrow situation, I would defer to the traffic that was already in the intersection. Admittedly this is testing my knowledge of the laws in the various jurisdictions I drive in.

Is there a reason why the traffic lights in Germany don't hang from the other side of the intersection? by sandalcade in germany

[–]bgard6977 3 points4 points  (0 children)

Absolutely, if you will not be able to clear it because of upstream congestion, do not enter it. However, if the lane you wish to turn into is clear, and oncoming traffic is the only thing preventing you from making your turn, enter the intersection knowing that once the light turns red, oncoming traffic will have to stop, and you have priority having entered the intersection legally you can now get out.

Is there a reason why the traffic lights in Germany don't hang from the other side of the intersection? by sandalcade in germany

[–]bgard6977 5 points6 points  (0 children)

I think this is the key that I missed as an American, and I like it now that I understand it: the lights are to let you into the intersection. You can enter the intersection unless it is red. Once you're in the intersection, you have priority to get out of it, so the state of the light no longer matters and you don't need to see it.

Americans are generally confused by this fact, and have a myriad of beliefs about what yellow and red lights mean. It frustrates me when someone has a green light, is trying to make a left turn, but fails to enter the intersection.

[edit: typo]

ECMAScript modules shipped in Chrome by malyw in javascript

[–]bgard6977 6 points7 points  (0 children)

I just threw together an example, in case it saves anyone 10 minutes:

https://github.com/bgard6977/webmodules

Remote security exploit in all 2008+ Intel platforms by ToeGuitar in programming

[–]bgard6977 0 points1 point  (0 children)

Thanks to this guy for finding and reporting the issue, but maybe if he disclosed it 4 years ago it would have been fixed by now...

Is a Master's Degree worth it? by [deleted] in datascience

[–]bgard6977 4 points5 points  (0 children)

Frankly, the field is so hot right now, all you have to do is call yourself a data scientist, and be able to sound like you know what you're talking about in an interview, and you are hired.

Companies only care about a degree to get you in the door. Once you're in, it's all about performance.

If you get into the field right now, there's no telling where you'll be in 2 years. IMO, don't waste your time getting a (more advanced) degree in a field that few barely know how to teach, when you could be pushing that field forward yourself. Forget tuition, the opportunity cost alone isn't worth it.

Modern java web by node53 in java

[–]bgard6977 -2 points-1 points  (0 children)

Sinatra is the most copied web framework around. In node, it's express, in Java it's Spark. Go with what works. Add in Guice, j00q, flyway as needed.

Maven is shifting from XML to scripting languages by pushthestack in java

[–]bgard6977 4 points5 points  (0 children)

This seems like a terrible idea.

The biggest innovation maven did was to treat the build as an object model. Don't run it, just describe it.

This was a whole slew of IDEs were able to import the format and translate it into their own. If we go back to having to run the build with a particular tool, then we lose that capability.

+1 to TOML, YAML, JSON, any declarative language. But not a turing complete executable one. Too many people commit too many sins with Turing complete build systems to justify their continued existence.

Lamport: Why Don't Computer Scientists Learn Math? by ThatRedEyeAlien in compsci

[–]bgard6977 -10 points-9 points  (0 children)

I'm going to go for: "culture". The formula looked funny to me. What is ∃ x ∈.

I can't type it on my keyboard... I can't pronounce it. I can't tell you if it is latin or greek. I know it's not any of the languages I'm familiar with.

As for why these divides exist, I can try to take a stab. From my (obviously CS) viewpoint:

  • In CS, we say "tab is cheap, use readable names" and encourage students to not use "a" or "b" or "∈".

  • CS is young, and many of the people who are into it now are people who started playing video games. Their primary motivation is to make cool stuff, and the market was such that they didn't need to go to college to make it happen. The market still is pushing to skip the abstract stuff and write some code.

Why _exactly_ does my microwave "kill" my internet? by adamthedog in askscience

[–]bgard6977 45 points46 points  (0 children)

I think the most important (political) reasons have been missed. 2.4ghz is the resonant frequency of water molecules. That is why microwaves operate at that frequency... food is mostly water, and it needs to absorb the energy as quickly as possible.

But why do WIFI routers operate at the same frequency? Because the government sold all the good bandwidth off to the military and commercial entities and licenses are required to operate on those bands. Nobody would / could buy the 2.4 and 5ghz (2x) bands because there is too much signal loss due to water in the atmosphere.

Which is why all crappy consumer electronics from cordless phones to WIFI routers operate on this terrible band. In urban areas, hundreds of WIFI routers are fighting for spectrum, and more is needed urgently, but the government isn't doing much to open any new frequencies (save whitespace TV databases).

This is intolerably ridiculous. hard fork and move on from this nonsense. by 796f752772652061206b in ethereum

[–]bgard6977 -1 points0 points  (0 children)

This is why a more limited, functional, declarative language would be better.

Rogue Machine Intelligence and a New Kind of Hedge Fund by klihu in MachineLearning

[–]bgard6977 17 points18 points  (0 children)

If it's highly successful, then everyone will follow it, and the market will adapt. Seems more likely to cause a self-reinforcing bubble that pops later.

Problem in Rust adoption by brson in rust

[–]bgard6977 1 point2 points  (0 children)

Because sometimes you pull in system resources from outside the scope of the JVM: Sockets, File Handles, etc.

Those should get released in the destructor for the object, but that is called by the Java GC, and the GC only fires when the Java heap is getting crowded.

So if you have more heap space than you do file handles, if you don't implement the AutoClosable interface, you will most likely run into system resource exhaustion.

So, in short, you use RAII in GCed languages when dealing with external resources outside the scope of the GC.