skysight-inc/HackerNews huggingface dataset:
The reason cgo is (relatively) slow is small stacks, not M:N threading.

Small stacks (and M:N threading) are needed to efficiently implement tens of thousands of goroutines.

CGO is slow mostly because it needs to switch to a larger stack when calling a C function.

It's a trade-off.

A different Go implementation could make Goroutines map 1:1 to threads and have fast cgo calls at the expense of slow goroutines.

Rust is not exempt from those trade-offs. They chose fast FFI and smaller runtime. They paid with slow threads.

Async/await promises to be the best of both worlds but it comes at a cost of great complexity, both for the programmer and the implementor.

At the end of the day under the covers it's just threads that need to be managed in a complex and often invisible way plus a complex rewrite of your straightforward code into a mess of a state machine.

I can confidently say that learning to use goroutines took 10x less time than learning async/await in C#.

I understand goroutines better than I ever understood async/away.
I’d say yes, it is. Gyms where I live are a tad less public though, and not everyone at the gym showers at the gym. The showering before swimming in Iceland is something everyone there does, and for Americans it is a bit different than what we’re used to at a public swimming pool, hot tub, or sauna.
Parsing All: Syntax and Semantics, Dependencies and Spans
Why not just have

var foo = 1
A lot of what you describe is for CPU bound problems, most of the problems I face personally and the the problem, in particular, the parent mentioned are IO-bound. Async in Python is a near-perfect fit for this kind of problem space and is really easy to reason about and debug as you can step through and debug one line of execution at a time.
This is great news, but I'm bummed they didn't bundle the NAT gateway with this service. In a typical function that calls out to get data from a service and reads/writes from a DB in a VPC, that requires the somewhat painful configuration of a NAT gateway and dedicated subnets, as well as a $36/month bill for the NAT gateway service.

There are some workarounds that using multiple lambdas, but they have their own gotchas.

Still, hooray, this is good news. The Data API is great for Serverless Aurora, but I can't use that with BI tools.
When I Took My Zipcar Into the Wilderness
Location: Buenos Aires, Argentina. (Mostly)

Remote: Preferred. I would consider spending up to 4 months/year on site if necessary.

Willing to relocate: Not completely, as indicated above.

Technologies: HTML, CSS, Javascript (ES7+), React, Redux, NextJS, Webpack, NodeJS, Express.js, MySQL (MariaDB), MongoDB, Mocha, Chai, Jest, Cypress, Docker, Gitlab, GitlabCI, AWS, Now.

Résumé/CV: Available on request

Linkedin: https://www.linkedin.com/in/ramiro-pinol/

Email: ramiropinoldev (at) gmail (dot) com

I'm a Full-stack developer with 3 years of experience in Front-end, Back-end and some DevOps. I love to learn and build things from scratch.
I'm passionate about machine learning and been dedicating my free time learning about it. A web-dev position in a company on this field will be a big plus for me.
> ActiveRecord for example, treats SQL as “the source of truth”, per his definition.

SQLAlchemy author here. I can't imagine how someone would not consider SQLAlchemy to treat "SQL" as the "source of truth" as well. All of SQLAlchemy's constructs map directly to SQL syntactically. Our most grumpy users are the ones who don't know SQL. This blog post would certainly benefit from some actual examples. "ORM-light tools that coerce responses into native structs and allow for type-checking are less offensive to me." - that is...an ORM?
Is flagging appropriate in these situations? Or just wait until dang reroutes it?
Artist Designs Jewelry to Block Facial Recognition Software from Tracking You
Not totally sure about the ESP8266. I used a WiFly RN131 in a sensor product that woke up every 15 minutes and sent a reading. AA batteries lasted probably 18 months.

Biggest problem we found was enterprise networks would randomly kick you off if you were using DHCP. I think because they would assume that if you hadn't transmitted in five to ten minutes it meant you'd gone away. Using static IP fixed that.

Edit: Friend of mine that mucks with ESP8266's uses the low power timer to reset and wake the device up out of deep sleep. (Via a simple hack I think just connecting a timer pin to the reset).
> Hope you have it backed up, because they die sooner or later

Tangential to your point, but is there anything useful that isn't backed up more or less by default in the standard Android workflow? I get that the privacy-concerned wouldn't use eg Google Photos, but they also likely heavily overlap with the set of people savvy enough to set up backup solutions for important data.
I'm wondering whether there is a way to connect to a real mainframe, not through Hercules, just to play with it and maybe do some good programming on it.
I believe the best practice is actually to lengthen the yellow light time when adding a red light camera. Presumably shortening the yellow light time is dangerous whether there's a camera or not.
Before GTA and “No Russian” [1] there was simultaneously easier access to guns (including full-auto) and less mass murders.

[1] - https://m.youtube.com/watch?v=G7vBol8wud0
I don't think that's true. The data are more complicated: https://www.fhwa.dot.gov/publications/research/safety/05049/
That sounds like an issue with the Mac or MacOS mainly. I have a ThinkPad which charges over USB-PD, but if it can't negotiate 45W with the charger, it doesn't show it is connected to AC.
I'm not sure, but commenting on downvoting is likely to attract downvotes as it's explicitly against the guidelines.

https://news.ycombinator.com/newsguidelines.html
Would you include screens? I feel like my decisions (between flagships) tend to be driven primarily by screen.
I like ActiveRecord. I like it so much I've implemented the Active Record pattern myself and compared my results with ActiveRecord.

That said, I've come around to the Repository pattern and quite like the Ecto way of doing things. It's a lot more flexible at the expense of some simplicity. It makes some really hard things easier than AR can.
Location: Boston, MA

Remote: Sure

Willing to relocate: Yes

Technologies: Common Lisp, Python, Linux, git

Github: github.com/Duderichy

LinkedIn: https://www.linkedin.com/in/richard-bibeault-355512159/

Resume: see LinkedIn, and message me their, or email me for a copy.

Email: RichardMBibeault@gmail.com

Editor: vim/emacs

Physics major (Bachelors of Science) turned software developer. Closing one year as a backend developer at a common lisp shop. Looking to move to a linux based company. (macOS as workstation computer/laptops is great too!). Avid learner, currently finish up Designing Data Intensive applications.

Would be glad to work at a company that uses a functional language, such as Haskell, especially if they don't expect new employees to come in already knowing the language.

Ambitious: only been at the company a year and spent a significant amount of time this summer directing an intern, overhauled the build system the company uses internally (set up jenkins over previous system).
The number of times I've had to increment a value by one are minimal. Or similar things where you want to update one value based on the other values, and do it in an atomic way.

But if I had to increment specifically, and were using ActiveRecord... I'd use the ActiveRecord increment! method. Which has the proper db-atomicity semantics you want, it does execute `UPDATE x SET n = n+1 WHERE pk = y ...`
Western Digital Debuts 18TB and 20TB MAMR Disk Drives
My ORM (and probably yours) handles CTEs ;)
I heard that in IL police are riding around in semi trucks so they can peer down into tall SUVs and catch drivers playing with their phones. Not at all a perfect solution, but it's a start.
I couldn't find け or む on this keyboard...
It's not quite that in my opinion. At the time the original union was thought to have big benefits for all members, and it did. Strongarming wasn't driving things as much as perceived mutual benefit.

But now with one of the biggest countries in the union looking to leave, it threatens the entire idea. Kinda like if the United States actually left NATO. In both cases it is in the alliance's best interests to 'keep the band together'.

Brexit was sold to voters with the promise that somehow the UK could work out a comparably favorable trade deal with the EU without having to agree to freedom of movement, EU regulations, payments to the EU, etc. If EU gave them such a deal, why should any other country abide by the requirements of the union?
> It's hugely about: cost, and the desire of the USB forum to ship a single "does everything" protocol that keeps a large chunk of the industry from choosing to stay on some old version of the spec forever.

why is it so bad if they stay on the old version? AFAIK, usb already bends over backwards to support every older version of the spec. imo, it would be great if USB3.x supported all the latest extensions, USB2 was still kinda fast, and USB1 could still be useful for that really old device you have sitting around (or if you just want to be able to trickle charge a phone with the only micro-usb you have around).
I wrote SQLAlchemy after a five year job where all we did was work with enormous views in an Oracle database. They performed nightmarishly bad. The slightest attempt to query from one of these views using something as heretical as a join would kill the database. The source code for the views was locked up tight by DBAs who had no idea how our application worked, didn't care, and they could never be bothered to help us with their horrendously inefficient views or to give us new ones that our application sorely needed in order to get data from the database in an efficient manner.

SQLAlchemy exists exactly because of the pain the "just use views" approach causes. The entire point is that you can structure a query of arbitrary complexity in a succinct manner using Python structures, while not losing any of the relational capabilities. Of course you can write queries that are too complex, if you're then lucky enough to be able to have materialized views at your disposal, you can turn the SQL you wrote into one. But that's an optimization you can use if you need it, or not.
I can't provide proper citations right now but there has been working exploits of some the latest CPU bugs using just Javascript in a browser as if we're browsing regular websites.
Very concise. Btw, I see that you created this tool. It is a brilliant tool. Just wish people would start using this tool to explain the steps instead of writing them in ad filled/narrow column pages.
A compelling argument for more nuclear power. I'm a believer.
Both apps' dark modes are shown in screenshots on the official Android 10 page.

https://9to5google.com/2019/09/03/gmail-dark-mode-android-te...

Probably not far off.
Seems like the same idea as in this paper:

Efficient Implementation of Java Interfaces: Invokeinterface Considered Harmless (2001)
https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21....
Almost like it was a beta... :P
I haven't had a chance to watch but it seems like you are berating him for figures of speech and/or speaking styles. As far as I know his contributions to the kernel are pretty vast. We are all human and security isn't his only focus so maybe give him a break.
What legal remedies can those who were doxxed pursue?
No. Using an RDMS instead of DynamoDB is not a “legacy” architecture. You also shouldn’t expose your database publicly.
Accounts are the correct level to separate these at. Keeps credentials easier to manage for devs, techs, etc, and limits blast radius if unauthorized accesses take place.
Only one of those problems is CPU. The others are type system and IO issues, and they happen in IO bound services too.
Is this a universal serial bus, or a universal docking station port?
On my pixel at least you can select to use the new gestures, the previous pill-style gestures, or the old three icon method. I use the pill-style ones, because I have other actions triggered on edge swipes that I want to keep.
Drizly | Boston, MA | ONSITE | Full-time Hiring | Data Engineer, Senior Data Engineer | $120K-160K + equity

Drizly is the world’s largest alcohol marketplace and the best way to shop beer, wine and spirits.

The Senior Data Engineer will support and enable Drizly’s Analytics team (Data Science + Business Intelligence). From building a clickstream processing framework to help support 10m events per day, moving production tables to the analytics data lake, or integrating new data pipelines, Drizly’s Senior Data Engineer will be essential to create a scalable, well-managed foundation for the company.

https://jobs.lever.co/drizly

Apply via the link above, or email me your resume (address in profile) and I'll pass it along!
I think it's comparable, it's just that nature is a much more consistent teacher than Hans' handler was.
> "migration commands based on the git history"... what does that even mean? What does git history has to do with the database?

I'm not sure what git-specific interaction the author is envisioning, but more generally: declarative schema management tools are based on the notion of using a repo to store only CREATE statements. It's an infrastructure-as-code style approach, where to modify an existing table, you just modify the CREATE definition. The tool figures out how to translate this to an ALTER.

I'm the author of an existing tool in this space, Skeema [1], which supports MySQL and MariaDB. Other recent tools in this space include migra [2] and sqldef [3]. From what I understand, in the SQL Server world there are a number of others.

[1] https://www.skeema.io

[2] https://github.com/djrobstep/migra

[3] https://github.com/k0kubun/sqldef/
It is a silly distinction, but: In reality, millions of real people have observed Picard uttering that quote while zero real people have observed the judge's father uttering that quote.
Der8auer thinks its a binning/marketing issue, and no amount of bios massaging can help it.
This is dreadful. It seems more widespread than anything I've heard about in the US, but chillingly I fear the difference is only in degree, not kind. Plenty of Americans have been shamed and persecuted for holding "unacceptable" views, including views that were widely accepted not so long ago. Ideally articles like this will scare us away from wandering further down that path, but I'm not optimistic.
Show HN: Comana – Monitor open source repository community activity
Shortly after Uber and Lyft became popular, they were forced out of Austin due to a scuffle around local regulation. It took very little time for some new competitors to start up, one of which (RideAustin), is still thriving. The cost is almost exactly the same, but far more money goes to the drivers, and the drivers tend to be far higher quality. If memory serves me right, they even adopted some user-friendly features like a female-only driver setting first too. You can have your cake and eat it too: there's no real dichotomy between Uber/Lyft and the taxi companies.
The USPS may be burning their network effect benefits on universal service.

Sending a few letters from Manhattan to Nome for 50 cents snuffs out the profits from a lot of Amazon packages.
Contrast with the recent naming scheme change for Wi-Fi, which IMO went from overly technical and wonky to quite reasonable. Wi-Fi 5 is followed by, of all things, Wi-Fi 6!
This seems like a bad heavy idea. I just can’t figure out why.
In China for supporting protests against the (puppet) government of Hong Kong? I have a guess...
The United States and slavery?
I'm quite experienced in shenanigans. Doing them with hash tables, however, definitely peaks my interest.
Legal remedy? This is what the state wants; as far as the legal system is concerned, if you’re doxxed, it’s because you’re a de facto enemy of the state. The future of China looks like the Cultural Revolution implemented as a “human flesh search engine.”
I'd like to see someone have a decent go at reexamining the idea that business logic (BL) doesn't belong in the DB and tease apart exactly what that should mean, if it's actually still true, or even if it's ever actually been true. Maybe something like that's been posted here before, but I haven't seen it...

I bought into the idea myself for a while, but when I interrogate my belief there it was just something I picked up at uni as part of the general 3-tier approach, and I'm not sure how much of it is really practically grounded. I see the same ideas held dogmatically by newer employees, and when I ask them about it in detail, I see the same fuzziness.

After all, if you want to really be pedantic, then you could claim anything beyond having a single table with two columns, "key" and "value" is pushing BL into the DB.

I.e, what practically does the separation gain you? You may want to swap out the DB in future? Almost never happens, not without some significant other refactoring going on (e.g breaking out into separate DBs because the product's grown to the point of needing distributing across services, etc). If you want to really design with that in mind, you're almost certainly giving up a lot of functionality that the particular DB is going to give you. It's on the level of holding onto the possibility that you'll want to change the language you're writing in at some stage (and that event would favour pushing more into the DB anyway).

In reality, what I've found is when there's a reliable, transactional, relational datastore at the bottom (i.e we're not talking about a larger distributed system), then for your own sanity you want to be pushing as much as possible down the stack as possible, to reduce the surface area that someone could reach through to change data in the wrong way. Data consistency issues are some of the worst when it comes to eroding customer trust, and if your data access/mutation paths are many and varied then you can do your head in or burn through a lot of dev morale trying to diagnose them.

The strongest advocates otherwise I've found are those in office cultures where there's little trust between devs and DBAs and getting things through DB review are a rigamorale that end up driving devs towards doing as much in code as possible. I've always suspected that beyond Google envy, these sort of dynamics are what drove a lot of the initial NoSQL movement...
But instead of opening the discourse on how to solve the car epidemic, mainstream news prefers to focus on other road problems, like how "deadly" cyclists are:

https://nypost.com/2019/08/31/nyc-bicyclists-are-killing-ped...
Beamdog thinks its to costly to reverse it.
i wonder if the compiler and its libraries are around.
someone could build a decompiler.
I wonder how many people beamdog might have in the studio that can read assembler?
or for that matter trap and log CPU instructions during runtime sequences.
there is a thinly smeared modders community that have tools and resources for developing infinity engine games, I wonder if we have somthing usefull?

Im skulking around here right now :

https://sorcerers.net/community/forums/icewind-dale-2.23/
Semantic versioning as it usually applies to software is a bit awkward for numbering the USB specs. The challenge is that USB has two largely orthogonal features that need to be described: link speed, and everything else that has been layered on top as the standard has evolved (power delivery, OTG, etc.)

USB 1.1 supported low speed (1.5Mb/s) and full speed (12Mb/s). USB 2.0 added high speed (480Mb/s) but didn't make it mandatory; you can have a USB 2.0 compliant keyboard that only supports low-speed or full-speed operation. USB 3.0 did the same thing with the introduction of SuperSpeed (5Gb/s).

What they should have done was keep making point releases on the 1.x, 2.x etc. specs when they added things like On The Go and Power Delivery, but keep the major version number representing the maximum supported link speed. By that scheme, we would have all 3.x devices capable of 5Gbps and no more, and what's now being introduced as USB4 would be more like USB 6.5 (if the minor version numbers were kept in sync across the speed grades). But this would deprive many companies of marketing opportunities, and instead force them to advertise USB 3.x support years after USB 4, 5 and 6 come into existence.
This isn't quite the same as being solely git-based, but there are numerous examples in the industry of successful use of auto-versioned declarative schema management. By this I mean, you have a repo of CREATE statements, and a schema change request = making a new commit that adds, modifies, or removes those CREATE statements. No one actually writes a "migration" in this approach.

Facebook, who operate one of the largest relational database fleets in the world, have used declarative schema management company-wide for nearly a decade. If engineered well, you end up with a system that allows developers to change schemas easily without needing any DBA intervention.
Have you considered Matomo? https://matomo.org/
Show HN: Methodfinder for Python
I was wondering for those who reside outside China, a lot of students, for example.
I think this is more common that the author assumes, I use hash tables in a similar way in my own project. It quickly suggests itself when you are mapping names within types to different offsets per type.
This seems like a good a thread as any to ask my perennial question:

Is there some sort of logic or formalism that would let me algebraically represent a program like bubble sort, and then algebraically simplify it to a quick sort?
Notes about Netiquette
Any hope for getting native Graphics API on Android?

Or is it too much to ask and so each native app shall reinvent the wheel by its own?

12 years and no such basic stuff ...
Not the OP, but if you’ve ever had to write 100% fault tolerant concurrent Go code, you find yourself having to add a lot of monitor-recover-restart “boilerplate” that ends up being quite complex, depending on the task at hand.

It helps if you follow certain principles like making your concurrent tasks idempotent etc., but Go doesn’t force you to write things that way, so it takes a bit of remembering each time.

If the task is relatively simple, you end up writing a lot of concurrency infra for a little bit of concurrency, which can become frustrating if you’re doing it for the Nth time.

It sounds like a problem that’s ripe for abstraction, but it turns out that it’s quite hard to build abstractions that get all the trade offs just right for each case. There’s some worker pool style libraries out there, but if you care about performance you can usually eke more out by writing a custom solution.

As for alternatives, I have heard that erlang has a better story for this, because of the inherent restrictions of the language, but I haven’t used it much.

In my experience, Go gives you enough rope to make this task “merely annoying” (rather than impossible or astoundingly challenging) without giving you enough to truly hang yourself with. You can get really tangled up though :)
Ive looked - a lot - to try and find a reasonable alternative. I haven't found any devices that are as inexpensive and convenient as the ESP chips. Microchip have some relatively inexpensive WiFi modules that need to be used with another MCU and Silabs have some modules including an ARM MCU (WGM160P). These still need blobs but I'm a little happier with a larger more established silicon vendor.
Before Uber and Lyft cabs were terrible everywhere except maybe London and Tokyo. Competition was sorely needed in this industry. I hope the competition continues even if the prices go up.
China is a country filled with ultra nationalists it is really not surprising that they would implement Nazi and Stalin era tactics.
me one of them
I guess so. The blog post is https://marginalrevolution.com/marginalrevolution/2019/09/gi... .