Hacker Newsnew | past | comments | ask | show | jobs | submit | paisawalla's favoriteslogin

I asked it to produce a perfect pangram, which uses each letter once and only once. It unsurprisingly couldn't do it despite explicit instructions. It did produce several known examples of pangrams using all 26 letters but didn't seem to have "Mr Jock, TV quiz PhD, bags few lynx" memorized.

I am a data scientists. I have used a lot of tools/libraries to interact with data. SQLite is my favorite. It is hard to beat the syntax/grammar.

Also, when I use SQLite I do not output using column mode. I pipe to `tv` (tidy-viewer) to get a pretty output.

https://github.com/alexhallam/tv

transparency: I am the dev of this utility


It's interesting that people are using this moment to fault Elon, when it's one of his finest moments. Making an 'offer' on what you believe to be good faith. Hidden in your pocket, you know the other party is acting in bad faith. (Twitter says 5% of the DAU is bots) Elon calls them out on that ridiculously low number, says the deal is on hold until this fraud is verified.

Obviously the bots on twitter account for more than 5%, and will be at the detriment of the biggest KPI that twitter touts. He's given them a taste of what will happen if they walk away from the deal by 'putting it on hold' and watching the stock lose 10% in precisely the same day as a general market recovery.

He now has the ability to renegotiate below his 'best and final offer'.


More than once I have said that some startups would do a lot better if they used half the money they got from their last round, bought a few grams of mushrooms for everyone, and then set the rest on fire on a beach somewhere, but for a very specific reason. There are legit complaints about VC's as a whole, but being risk averse is not one of them, and one from someone heroically accepting a regular paycheque and a snack fridge from one of their companies every two weeks, calling them out on risk aversion does seem a bit rich.

The reason is too much cash takes the focus off product and turns it inward and creates a zero sum competition internally among managers to loot the excess money instead of focusing on growth from real revenue. Economically, at least the fire would be deflationary. Cash is literally fuel, and unless you can put it into something that grows, it's a volatile nuissance whose fumes impair judgment. If you want to destroy a product and a company, get them indexed on unlocking a covenant or raising another round where the execs get bonused out of it.

Cash is what you have when you don't have product market fit and (I think) it creates a culture that repels customer desire. Why make anything someone wants when you have enough runway to tinker with what you want for yourself, maybe some follie that you can speak at conferences about, or the best devops and ci/cd pipeline to nowhere?

I'm harsh about this because investors buy a ticket for a growth ride, and the best ones are diversified enough that they really do just buy the ticket and take the ride. But watching engineers iterate on refining the exeuction of solved problems, managers focus on "getting resources," and sales acting like the abused secret side partner to some flagship account they're fronting to attract investor/acquirer interest - are all just spinning wheels, imo.

There are lots of legit complaints about VCs, particularly around financial engineering, and some negative culture issues from the teams they can parachute in, but even as an admitted serial IC technologist, the article embarasses me.


Not just the models, Kicad uses Open Cascade for dealing with STEP files and probably some other things.

If you want a simple CAD tool for designing 3D part packages, I can recommend Solvespace. A lot of people find it easier than FreeCAD for smaller designs - like electronic components:

https://solvespace.com/index.pl

It can create step files for KiCAD, but can not read them. Some day I'd like to bring the step reader from gcad3d (or other) onboard so we can at least link them into assemblies. That'd be a huge integration project, but it's way smaller than OCCT.


French/Iranian lawyer here. Moved to Linux 5 years ago (from OS X) because Apple kept changing my workflow and suppressing functionality.

Libre office proved to be better than Mac Word (better support for Persian and so called complex languages) and than windows word (could open old word documents that word itself couldn’t open any more!).

Regarding ScanSnap, I replaced it with a Brother multifunctional printer that scans to an sftp folder which is watched by ocrmypdf. I get to one touch scan a document without logging in a computer. When I need the document it’s there for me as an OCRed and cleaned PDF. Super convenient.

Replaced Word with latex. Our contracts are generated with latex and smart: they check themselves up for coherency when the pdf is built.

Overall no driver problem but you need to check before buying peripherals that they will be compatible with Linux.

Updating the system is as easy as it could be. Installing software is a breeze with ‘yay’. Arch Linux is very well documented and when encountering a hurdle chances are that the solution is already in the wiki.

On the server side, CentOS proved super stable and a welcomed improvement over OSX server which terribly lacked documentation.


Britannica has a 10 year reading plan that they published along with their Great Books Of The Western World set that you might find interesting.

http://www.greatconversation.com/10-year-reading-plan

The Harvard Classics is a similar set of books that pre-dates Britannica's set. It has a 15 minutes a day reading list for the year. The reading list is in volume 50.

https://www.harvardclassics365.com/p/free.html


If you're interested in the tiling features of Pop OS, they're also available as a standalone extension for GNOME Shell. Very little friction to test them out (if you're already running GNOME).

https://github.com/pop-os/shell

https://support.system76.com/articles/pop-shell/


Related: If you use Home Assistant and have Chromecast devices, the AirCast addon will allow you to use AirPlay to send something to a Chromecast device.

https://github.com/hassio-addons/addon-aircast



More specifically, this paper is focused on the social sciences. That's not to say that this isn't present in the basic sciences either.

But one other thing to note here is that these headlines about a "replication crisis" seems to imply that this is a new phenomenon. Let's not forget the history of the electron charge. As Feynman said:

"We have learned a lot from experience about how to handle some of the ways we fool ourselves. One example: Millikan measured the charge on an electron by an experiment with falling oil drops, and got an answer which we now know not to be quite right. It's a little bit off because he had the incorrect value for the viscosity of air. It's interesting to look at the history of measurements of the charge of an electron, after Millikan. If you plot them as a function of time, you find that one is a little bit bigger than Millikan's, and the next one's a little bit bigger than that, and the next one's a little bit bigger than that, until finally they settle down to a number which is higher. Why didn't they discover the new number was higher right away? It's a thing that scientists are ashamed of—this history—because it's apparent that people did things like this: When they got a number that was too high above Millikan's, they thought something must be wrong—and they would look for and find a reason why something might be wrong. When they got a number close to Millikan's value they didn't look so hard. And so they eliminated the numbers that were too far off, and did other things like that ..."

https://en.wikipedia.org/wiki/Oil_drop_experiment#Millikan.2...


I'm using Starlink right now. AMA.

I'm in East Idaho. Currently my dish angles itself to the north. It rarely moves itself north/south, and slightly moves east/west throughout the day. I've read that right now it locks onto a single satellite, although they're adding multi-satellite support later.

My speeds are inconsistent, and interestingly they start slow (around 60 Mbps) but after a couple seconds they'll get to 150-200 Mbps (which is awesome for downloads). Latency is consistently in the low 30ms. I get some downtime every day, so it really is a "beta" like they say. I have a backup WISP.

Setup was literally take dish out of the box, insert into tripod (included), plug in cables, connect to the wireless routers SSID and activate with the starlink app. After that I put the included router into storage and plugged in my Protectli[1] running CentOS. Everything works great. My only complaint is the CGNAT, but given the difficulty associated with procuring IPv4 addresses, it's understandable.

[1] I love this thing. Highly recommend: https://smile.amazon.com/gp/product/B0741F634J/ref=ppx_yo_dt...


Former Uber engineer/EM here: I worked on the Rider app.

The “there are only a few screens” is not true. The app works in 60+ countries, with features shipped in the app that often for a country, and - in rare cases - a city.

The app has thousands of scenarios. It speaks to good design that each user thinks the user is there to support their 5 use cases, not showing all the other use cases (that are often regional or just not relevant to the type if user - like business traveler use cases).

Uber builds and experiments with custom features all the time. An experimental screen built for London, UK would be part of the app. Multiply this by the 40-50 product teams building various features and experiments outside the core flows you are talking about (which core flows are slightly different per region as well).

I worked on payments, and this is what screens and components are in the Uber app:

- Credit cards (yes, this is only a a few screens)

- Apple Pay / Google Pay on respective platforms

- PayPal (SDK)

- Venmo (SDK)

- PayTM (15+ screens)

- Special screens for India credit cards and 2FA, EU credit cards and SCA, Brazil combo cards and custom logic

- Cash (several touch points)

- AMEX rewards and other credit card rewards (several screens)

- Uber credits & top-ups (several screens)

- UPI SDK (India)

- We used to have Campus Cards (10 screens), Airtel Money (5), Alipay (a few more), Google Wallet (a few) and I other payment methods I forget about. All with native screens. Still with me? This was just payments. The part where most people assume “oh, it’s just a credit card screen”. Or people in India assume “oh it’s just UPI and PayTM”. Or people in Mexico “oh, it’s just cash”. And so on.

Then you have other features that have their own business logic and similar depths behind the scenes when you need to make them work for 60 countries: - Airport pickup (lots of specific rules per region)

- Scheduled rides

- Commmuter card functionality

- Product types (there are SO many of these with special UI, from disabled vehicles, vans, mass transport in a few regions etc)

- Uber for Business (LOTS of touchpoints)

- On-trip experience business logic

- Pickup special cases

- Safety toolkit (have you seen it? Very neat features!)

- Receipts

- Custom fraud features for certain regions

- Customer support flows

- Regional business logic: growth features for the like of India, Brazil and other regions.

- Uber Eats touchpoints

- Uber Family

- Jump / Lime integrations (you can get bikes / scooters through the app)

- Transit functionality (seen it?)

- A bunch of others I won’t know about.

Much of the app “bloat” has to do with how business logic and screens need to be bundled in the binary, even if they are for another region. E.g. the UPI and PayTM SDKs were part of the app, despite only being used for India. Uber Transit was in a city or two when it launched, but it also shipped worldwide.

And then you have the binary size bloat with Swift that OP takes about.


I relate to this deeply as a creative person. I'm in the middle of trying to bootstrap some businesses this year, and the act of creating these things is such torture sometimes.

Which is weird right? I've left my day job, I'm doing exactly what I want to do, working on exactly what I want to work on, so it should be great all the time right? And yet the daily emotional sensations I feel while actually doing the work is usually a mixed bag. Every once in a while I'll have a fantastic day where I feel great about what I'm doing from start to finish, but sometimes just defeating the resistance within me and getting any trivial amount of work done is the best I can do.

A lot of it comes down to basic quality of many creative endeavors: starting is easy, and finishing is hard. You can start anything, but if you work for long enough eventually you arrive at this ugly middle place. The part of the journey where you start to notice all the warts and imperfections of what you're making, when your limits start to show themselves, when the picture of the thing in your mind starts to diverge from what you're realistically capable of doing. Seeing that, knowing that it was you who created all of that "crap," and _still_ pushing through it to get to the flawed, imperfect, compromised final product, THAT is tough.

I suspect this is what Adams was expressing: "Arthur Dent is a burk. He does not interest me." Or expressed differently: "This character I've created is starting to become ugly in his imperfections, and I feel like I'd rather throw the work away than continue with it."

If you're curious to read more, I write about these kinds of ideas in this part of a recent blog I wrote: https://startupinamonth.net/month-two-week-three/#flying-on-...!


Honestly, nothing holds up to Mullvad [1]. They don't even take an email address while creating accounts, and you can pay easily with Bitcoin or even with cash mailed to them.

I'm not affiliated, just a very happy customer.

Mullvad is also who Mozilla trusts for the Mozilla VPN [2]. You can sign up with that if you'd like Mozilla to get a cut.

[1]: https://mullvad.net/ [2]: https://vpn.mozilla.org/


Instead of returning the mean rgb values, a better idea is to cluster the colors (e.g. using mean-shift algorithm) in a perceptually uniform color space [2] (such as CIELAB).

[1] https://en.wikipedia.org/wiki/Mean_shift [2] https://programmingdesignsystems.com/color/perceptually-unif...


I love 18xx, they are probably my favorite genre of board games. (Though the recent resurgence in publishing has made me scrap any ideas I might have had of having anything even approaching a complete collection.)

The Wikipedia page seems like an awful introduction to the subject though. That's just a list of features that might or might not be present in the games of the genre, I don't understand how someone who isn't already familiar with it could get any value out of the page.

The reason these games might apply to the HN demographic is that they are effectively simulations about running companies in times of rapid technological change and seemingly infinite growth. (We used to play a lot of 1841 around 1999-2000 boom and bust, and made a lot of jokes about the similarities between the game and reality.)

Effectively what you have is a very complex board game feeding valuations into a fairly simple stock market system, with market instabilities and riskiness being inserted into the game by passage of time. (Old equipement becomes obsolete by technological advances, and stops being productive.)

They're games about making money, and that money might be coming from any number of places. You might be creating value for real, effectively defrauding the taxpayer, fooling the gullible retail investors, or fooling your gullible opponents. Different games will fit differently on the engineer/investor/swindler triangle, but all will have some aspects of all.

Anyway, if anyone wants to give these games a try, http://18xx.games/ is the best place to play them online. But I'd kind of recommend finding a group of friends to try it out with, rather than playing with randoms.


I could use this for coding and my current 1920x1200 monitor for video and games... mmm.... so yummy. I already have a Dasung product, the not-eReader which doubles as a 7" eInk monitor and I love it. It's part of my tech EDC kit which I posted to https://imgur.com/a/xmRmYSn

To get back on topic, a 25.3" 3200 * 1800 eInk panel is mentioned at https://www.beck-elektronik.de/en/products/displays/e-paper-... and I doubt there is more than one but all details are "tbd".


Adaprox has various "finger bots" for those who don't want to build their own: https://www.adaprox.io/

For me pdbpp it's a must, always installed on every venv

It sounds wasteful until you've been with a company that outgrew its management structure. I spent many years at a place that grew from 200 to 800 people in about 3 years. We prided ourselves on the flat org and high level of responsibility. But as we approached the 500 mark, the cracks really started to show:

- Things truly requiring management handling (like raises, big expenses, hiring, etc.) took FOREVER in the best case because of the bottleneck at the top. More commonly, they got lost/dropped without explanation.

- Flow of sensitive information was slow and inconsistent because the only way to communicate with a flat org is all-or-nothing.

- Specialist engineers found themselves trying to track too many projects before they realized the overload was a problem (this was me)

- The president (and effective sole owner) was still deeply involved in all projects and regularly exercised veto rights. As the project load increased, the vetos landed later and later - some times after we'd already spent 50% of the budget! This left our customers up a creek and our reputation suffered.


I've been experimenting recently with YAML for this kind of thing, and it's working out really well for me so far.

I have a tool called yaml-to-sqlite ( https://github.com/simonw/yaml-to-sqlite ) which converts a YAML file into a SQLite database, which I can then use with Datasette ( https://github.com/simonw/datasette )

My biggest project with it so far has been my site https://www.niche-museums.com/ - a guide to small and niche museums. The museums themselves live in a single ~100KB YAML file in GitHub: https://github.com/simonw/museums/blob/master/museums.yaml

I have a CI script which builds that YAML file into a SQLite database and deploys it + Datasette + custom templates to https://www.niche-museums.com/

I've been running the site like this for a few months now and I really like it. I love having my content in source control, I find editing the YAML to be reasonably pleasant (I even edit it on my iPhone sometimes using the Working Copy app) and any YAML errors are caught by CI before they are deployed.


Before I click:

    $ echo 'obase=16; 1195725856' | bc | xxd -r -ps | od -cb
    0000000    G   E   T                                                    
              107 105 124 040                                                
    0000004
    $ 
Looks like HTTP.

The brain thrives on two things, movement and questions. Passively letting an uncritical experience wash over the mind wipes the chalk from the slate.

Having active shared experiences with other people while asking and answering questions is what keeps us us.


Gwern’s resources are surprisingly good:

https://www.gwern.net/GPT-2

https://www.gwern.net/Faces

These are “hands on” in the sense that you can replicate the results just by pasting in the same code. It’s kind of like a tutorial notebook in essay form.

Speaking of tutorial notebooks, pbaylies’ stylegan-encoder is quite good and you can run it on colab: https://colab.research.google.com/github/pbaylies/stylegan-e...

(Set runtime to GPU up in the menu.)

https://github.com/pbaylies/stylegan-encoder

In my experience the best place to have informal ai discussions is Twitter. The community is shockingly helpful. Follow @jonathanfly, @roadrunning01, @pbaylies and whoever pops up in the stuff they post. Roadrunning in particular posts tweets of the form “here’s some research; here’s the code” often with an interactive notebook.


We've been working on migrating from Oracle to Postgres for a few years now. We are about 2 weeks from being finished. It is not for the faint of heart, but it is totally worth it. The documentation is much much better, performance is equivalent or better, the sql dialect is saner, etc. Other than moving the data itself (ora2pg was invaluable for this), rewriting the queries is what has taken the most amount of time. Some of our tips on differences between oracle and postgres sql:

replace nvl with coalesce

replace rownum <= 1 with LIMIT 1

replace listagg with string_agg

replace recursive hierarchy (start with/connect by/prior) with recursive

replace minus with except

replace SYSDATE with CURRENT_TIMESTAMP

replace trunc(sysdate) with CURRENT_DATE

replace trunc(datelastupdated) with DATE(datelastupduted) or datelastupdated::date

replace artificial date sentinels/fenceposts like to_date(’01 Jan 1900’) with '-infinity'::date

remove dual table references (not needed in postgres)

replace decode with case statements

replace unique with distinct

replace to_number with ::integer

replace mod with % operator

replace merge into with INSERT ... ON CONFLICT… DO UPDATE/NOTHING

change the default of any table using sys_guid() as a default to gen_random_uuid()

oracle pivot and unpivot do not work in postgres - use unnest

ORDER BY NLSSORT(english, 'NLS_SORT=generic_m') becomes ORDER BY gin(insensitive_query(english) gin_trgm_ops)

Oracle: uses IS NULL to check for empty string; in postgres, empty string and null are different

If a varchar/text column has a unique index a check needs to be made to make sure empty strings are changed to nulls before adding or updating the column.

PostgreSQL requires a sub-SELECT surrounded by parentheses, and an alias must be provided for it. - SELECT * FROM ( ) A

any functions in the order by clause must be moved to the select statement (e.g. order by lower(column_name))

Any sort of numeric/integer/bigint/etc. inside of a IN statement must not be a string (including 'null' - don't bother trying to use null="" it won't work). Concatenating a NULL with a NOT NULL will result in a NULL.

Pay attention to any left joins. If a column from a left join is used in a where or select clause it might be null.

For sequences, instead of .nextval use nextval('')


I was curious if this could be doable with jq, and apparently it is:

  jq -j '
    [
      [
        paths(scalars)
        | map(
          if type == "number"
          then "[" + tostring + "]"
          else "." + .
          end
        ) | join("")
      ],
      [
        .. | select(scalars) | @json
      ]
    ]
    | transpose
    | map(join(" = ") + "\n")
    | join("") 
  '
EDIT: Got the string quoting and escaping.

EDIT 2: For those who want to save this script, you can put just the jq code in an executable file with the shebang:

  #!/usr/bin/jq -jf

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: