For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | more sassy_quat's favoritesregister

I don't know. It's not hard to buy a home if you're an American software engineer though, and aren't tied to the bay area or NYC. There are even places commuting distance from NYC where you can get a $250k single family freestanding home.

A few years ago I lived for a while in Tulsa, Oklahoma. It was pretty easy to find a $110k software job that was pretty chill and well, not so exciting or conducive for the ambitious. Numerically pay isn't what faang might pay in SF. But faang workers in SF claim they can't buy a house, yet this lower salary easily could have bought a mansion in Tulsa. They could have even cut my salary in half and it still would afford a nice average house.

Probably not a coincidence I saw a lot more families with children across all social classes there than in my prior NYC life. Hm.

So I don't think America has a cost of living problem, I think the bay area, core NYC and a few other major metros have a cost of living problem. That's bad, but those are two different things.


I have a male Barraband (Superb) parrot [1] and he can scroll videos on Youtube, select the ones with birds in and play those. People are in disbelief when the bird starts watching bird videos on his tablet. His "screen time" is not every day and limited to a few hours. I would love for him to be able to call other birds, he is smart enough to be able to pull that off right now.

I have noticed some new behaviours recently:

1. If I'm eating the bird will beg me for food. I have been able to get him to try any foods that he sees me eating.

2. My bird has a high demand for proteins, which he gets somewhat in nuts (limited due to fats) and he will steal meat whenever possible. The species is not supposed to even want meat, but he will steal it when he can.

3. He now makes a wider variety of noises, far beyond any video I have seen of his species. I believe he is trying to replicate human speech and gets close in tone. We talk to him regularly and I think he tries to talk back.

Anybody else experience strange behaviours with their birds?

[1] https://en.wikipedia.org/wiki/Superb_parrot


Such a fantastic project! Any presentation by Andreas is a great watch, especially this one. So good to hear that things are taking shape, and the browser seems to be coming along nicely.

Also interesting to learn about FUTO. Seems like a cool thing to watch out for. https://futo.org/about/what-is-futo/


These slides are from the talk given at the Open Source Summit (formerly known as LinuxCon) last week in Prague. The abstract given at the talk page https://osseu17.sched.com/event/ByYt/replace-your-exploit-ri... is

With the WikiLeaks release of the vault7 material, the security of the UEFI (Unified Extensible Firmware Interface) firmware used in most PCs and laptops is once again a concern. UEFI is a proprietary and closed-source operating system, with a codebase almost as large as the Linux kernel, that runs when the system is powered on and continues to run after it boots the OS (hence its designation as a “Ring -2 hypervisor"). It is a great place to hide exploits since it never stops running, and these exploits are undetectable by kernels and programs.

Our answer to this is NERF (Non-Extensible Reduced Firmware), an open source software system developed at Google to replace almost all of UEFI firmware with a tiny Linux kernel and initramfs. The initramfs file system contains an init and command line utilities from the u-root project (http://u-root.tk/), which are written in the Go language.


Just a single data point but... I am looking at replacing a custom database with SQL. The application will only ever run on one server, so Sqlite3 was a contender. The database is very read mostly, which makes it a strong contender.

The custom database is extraordinary fast at some things, so it's a complex decision. I needed benchmarks.

I chose something that mirrors how data is accessed in the custom database. The existing database does have several tables, but it's hard to use so most accesses are single table, indexed by rowid, with maybe 100,000,000 rows. So I benchmarked a single table, indexed on primary key only, 100,000,000 small rows. Since it was easy because I could use the same SQL I benchmarked both Sqlite3 and Postgresql.

I expected Sqlite3 to beat Postgresql on single row access / updates, and Postgresql3 to get the upper hand on multi row access / updates. I was surprised to see Sqlite3 was about twice as fast as Postgresql on everything, including inserting the 100,000,000 records. It was always single writer. Had I tested multiple writers I expect I would have seen really flex its muscles.

In case your wondering, the custom database is 100 to 1,000 times faster than Sqlite3 at accessing a single record. Getting that performance was achieved with some big tradeoffs, which make it so hard to code for it creates reliability problems.


This definitely gets a nerd award, I like doing that myself when working on win32 code (i.e. if possible and not to cumbersome, try to use functions that have been around in old windows versions). But it begs the obvious question if there's a legitimate use case for this, other than having a modern browser when spinning up your retro machine for that nostalgia once a year. And even then, unless you're visiting vogons, any modern website probably chokes your machine to death if it's a period-correct XP/7.

Old POS terminals for example? But I think they would just display an ancient website in an ancient browser anyways, and again if the hardware is as old as the rest of the system, this will probably just add slowness with no actual benefit.

Oh and yeah, nice job with the name, I misread it the first time. :-D


It straight up says that on the website: https://lumon.industries/company/legal/

"This website is not affiliated with Apple, Endeavor Content, Red Hour Films, or anything else remotely official. It’s made by a dude in Kentucky."


This reminds me of the antics of streamer DougDoug, who often uses LLM APIs to live-summarize, analyze, or interact with his (often multi-thousand-strong) Twitch chat. Most recently I saw him do a GeoGuessr stream where he had ChatGPT assume the role of a detective who must comb through the thousands of chat messages for clues about where the chat thinks the location is, then synthesizes the clamor into a final guess. Aside from constantly being trolled by people spamming nothing but "Kyoto, Japan" in chat, it occasionaly demonstrated a pretty effective incarnation of "the wisdom of the crowd" and was strikingly accurate at times.

This is a general problem with all federated systems.

It's annoying that we don't have a decent solution to this even for home automation. You ought to be able to take a "house ID key", probably a Yubikey, and present it to all your devices to tell them "you're mine now". Then they can talk to each other.

There are military cryptosystems which have such hardware. There's a handheld device called the Simple Key Loader.[1] That's what's used to load secure voice keys into radios, encrypted GPS keys into GPS units, identify-friend-foe codes into aircraft, and such. It's 15 years old, runs Windows CE, has a screen with a pen, and is far too big. The Tactical Key Loader is smaller and simpler.[2] 7 buttons and a small screen. About the same size as a Flipper Zero, but ruggedized and expensive.

[1] https://info.publicintelligence.net/SKLInstructionGuide.pdf

[2] https://www.l3harris.com/all-capabilities/kik-11-tactical-ke...


I think there are a few other benefits (even if that was the main benefit/driving force behind the decision).

When you have low-paying (or zero-paying) customers, you need to make your system easy. When you're enterprise-only, you can pay for stuff like dedicated support reps. A company is paying you $1M+/year and you hire someone at $75,000 who is dedicated to a few clients. Anything that's confusing is just "Oh, put in a chat to Joe." It isn't the typical support experience: it's someone that knows you and your usage of the system. By contrast, Cloudflare had to make sure that its system was easy enough to use that free customers would be able to easily (cheaply) make sense of it. Even if you're going to give enterprise customers white-glove service, it's always nice for them when systems are easy and pleasant to use.

When you're carrying so much free traffic, you have to be efficient. It pushes you to actually make systems that can handle scale and diverse situations without just throwing money at the problem. It's easy for companies to get bloated/lazy when they're fat off enterprise contracts - and that isn't a good recipe for long-term success.

Finally, it's a good way to get mindshare. I used Cloudflare for years just proxying my personal blog that got very little traffic. When my employer was thinking about switching CDNs, myself and others who had used Cloudflare personally kinda pushed the "we should really be looking at Cloudflare." Free customers may never give you a dollar - but they might know someone or work for someone who will give you millions. Software engineers love things that they can use for free and that has often paid dividends for companies behind those free things.


"Now Available" must mean something different to SiFive than it does to me. When I click the links in the press release that purport to let me acquire one, they all say "No Stock Available," which means the opposite of "Now Available" to me.

They weren't loading at all earlier, though, so saying that I can't get one but showing me the price I can't get it at is some kind of improvement, I guess.


This is a brilliant initiative. I think that less is more. Recently I was trying to inspect Twitter/X to obtain a video. You would not believe how many nested 'div' elements it was buried under.

I also had to do a X icon to replace the Twitter bird. So I went to get the official one and make it into my lean SVG. Again, you would not believe how much bloat was in what should have been a very simple file.

This is no rant about Twitter, the web in general is 99% bloat. I don't believe Google have 'stewarded' the web well enough to keep it lean.

If we go with the icon example, an icon has to be simple or else it is not an icon. Yet we have huge icon sets as fonts with excessive bloat. This is why I end up having to hand-carve SVG assets on the regular.

This aspect of simplicity applies to web pages too. Style sheets should not be thousands of lines. Content does not need to be nested in a billion divs, particularly since no div elements are needed now we have content sectioning elements and CSS grid layout.

The leanness of a website should be important as an expression of brand values for companies. For example, if your business is making cars, your website should be the fastest loading one to reflect your 0-60 times.

Hopefully we will get metrics for efficiency as one of things like accessibility that people strive for in varying degrees, with this efficiency being good for SEO. As it is, Google prefer data to be poorly structured as wading through rubbish is what their business depends on. If all content was well organised without the bloat then others would be able to do search to compete with Google. Hence we have a sea of divs on every web page, even though MDN docs says the div element is the element of last resort.


Sorry time: years ago I worked on a telemedicine web app before telemedicine was nearly as popular as it is today. Part of the application had patients filling out questionnaires online to show answers to the doctors. We were onboarding different parts of a large healthcare system throughout all this (cardio, GI, etc.) and each had questionnaires that required different logic for when and how to display the questions, so the application had a fairly powerful system for driving the conditional logic of when questions do and do not show up.

Well one day I am working on a new set of features to help support the new clinic that’s coming online and for whatever reason the question that should by all rights show up, does not. As I am getting deeper into debugging why, I pepper the code with nonsensical and slightly angry debug statements that show up alongside the questions. After solving the problem I happily clean up and commit the fixed code and move onto the next thing.

Well, it turns out I didn’t clean up all the debug statements. The statement I left in said I SEE YOU!!! in big red letters if you answered a particular set of questions in a particular way. This was discovered by a patient. Of the psychiatric clinic that just came online. On the questionnaire meant to evaluate paranoia.

Since then I have started using things like aaa and 111 as my debug markers.


I would imagine that Windows was closer to UNIX than VMS was, and there were several POSIX ports to VMS.

VMS POSIX ports:

https://en.m.wikipedia.org/wiki/OpenVMS#POSIX_compatibility

VMS influence on Windows:

https://en.m.wikipedia.org/wiki/Windows_NT#Development

"Microsoft hired a group of developers from Digital Equipment Corporation led by Dave Cutler to build Windows NT, and many elements of the design reflect earlier DEC experience with Cutler's VMS, VAXELN and RSX-11, but also an unreleased object-based operating system developed by Cutler at Digital codenamed MICA."

Windows POSIX layer:

https://en.m.wikipedia.org/wiki/Microsoft_POSIX_subsystem

Xenix:

https://en.m.wikipedia.org/wiki/Xenix

"Tandy more than doubled the Xenix installed base when it made TRS-Xenix the default operating system for its TRS-80 Model 16 68000-based computer in early 1983, and was the largest Unix vendor in 1984."

EDIT: AT&T first had an SMP-capable UNIX in 1977.

"Any configuration supplied by Sperry, including multiprocessor ones, can run the UNIX system."

https://www.bell-labs.com/usr/dmr/www/otherports/newp.pdf

UNIX did not originally use an MMU:

"Back around 1970-71, Unix on the PDP-11/20 ran on hardware that not only did not support virtual memory, but didn't support any kind of hardware memory mapping or protection, for example against writing over the kernel. This was a pain, because we were using the machine for multiple users. When anyone was working on a program, it was considered a courtesy to yell "A.OUT?" before trying it, to warn others to save whatever they were editing."

https://www.bell-labs.com/usr/dmr/www/odd.html

Shared memory was "bolted on" with Columbus UNIX:

https://en.m.wikipedia.org/wiki/CB_UNIX

...POSIX implements setfacl.


Ah yes, the two modes of disk erase failure: 1) the "quick format" that just re-wrote the FAT and root directory, leaving data, and 2) the immediately recognizable 0xE5 (σ in the 437 codepage). I used to use the Norton disk editor tool (IIRC, part of Disk Doctor) to explore my drive from time-to-time and it was somewhat fun to try and piece back together deleted files. In some cases, it was actually because I had accidentally deleted something important and UNDELETE wasn't good enough to get it back.

In one hare-brained moment, I decided to see what would happen if I turned off the DIR attribute bits on all of the directory entries in the root of my drive to see what would happen in DOS. The stress of trying to find a boot disk to edit those attributes back left a few decades of PTSD, though I'm sure that taught me some valuable, subconscious lessons. Eventually I did recover from that mistake!


I was talking about cow eggs specifically! When ChatGPT et al got out, one of the funniest things to do was ask it about the best recipes for cow egg omelette or camel egg salad, and the LLM would provide. Sadly, most of it got patched somehow.

>The Valid method takes a context (which is optional but has been useful for me in the past) and returns a map. If there is a problem with a field, its name is used as the key, and a human-readable explanation of the issue is set as the value.

I used to do this, but ever since reading Lexi Lambda's "Parse, Don't Validate," [0] I've found validators to be much more error-prone than leveraging Go's built-in type checker.

For example, imagine you wanted to defend against the user picking an illegal username. Like you want to make sure the user can't ever specify a username with angle brackets in it.

With the Validator approach, you have to remember to call the validator on 100% of code paths where the username value comes from an untrusted source.

Instead of using a validator, you can do this:

    type Username struct {
      value string
    }

    func NewUsername(username string) (Username, error) {
      // Validate the username adheres to our schema.
      ...

      return Username{username}
    }
That guarantees that you can never forget to validate the username through any codepath. If you have a Username object, you know that it was validated because there was no other way to create the object.

[0] https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-va...


Mongols never reached Novgorod, and it survived as a republic that paid tribute to them. After the decline of the Golden Horde, they were involved in power struggles with other regional powers, such as Muscovy, Tver, and (Poland-)Lithuania. After a century of shifting alliances, Muscovy became dominant and took over both Novgorod and Tver.

The American empire is a long way off collapse. People also underestimate collapse-inducing factors in countries with unfree political systems; we can't really see how China is doing internally.

The sense that fragmented factions actively want to choose collapse in order to accelerate their own power grab within the collapse is similar in the US to Britain, though. Not as similar to Austria-Hungary and its fragmentary nationalists. Will it have a Gavrilo Princep or a Tetsuya Yamagami? Hard to predict.


First, I object to the idea Every teacher gets to decide what they teach. There is a very prescriptive list of what the curriculum must contain, and it is assessed by standardize tests.

Second, teachers aren't fungible robots. They are humans with personalities, interests, and passions. Education works best when teachers are engaged. I think you underestimate the value provided by flexibility. you might be able to reduce variation through standardization, but that doesnt mean you improve the mean. My very best teachers went off script, teaching more valuable information, like a 5th grade teacher that decided to teach business, html, and the scientific method.

Last, it isn't exactly anarchy. Many subjects can be taught from texts, which are organized along standardized approaches.


Her actual whistleblower declaration contains a lot of the evidence some may be looking for:

https://live-whistleblower-aid.pantheonsite.io/wp-content/up...

To sum up the first few pages after skimming it, Facebook tried to bribe her (well "fund" her research), she refused. Later she had a meeting with the former head of comms at Facebook, who was now on the Dean's council, where he became incredibly angry with her research (page 4, 13). Following this, she got an email from the Dean of the Kennedy school which sounds very much like someone tattled to them and they now want to "review" her research (see page 5, 15). It continues from here.


> Why? Inferentia => inference, trainium => training.

Funny, that's precisely why I think the names are bad. It's like if Google had chosen "Search-ola" as their name. Way too on the nose and/or lazy. Having said that, I don't really care all that much and I imagine that may have been the spirit of those who chose the names.


> Why not start by building the version of that dependency supported by the project you want to build?

Because I don’t know which version that is half the time. Does the readme say to use version 2.2 or 2.0.1? Are they meaningfully different? Maybe 2.2 is needed to be compatible with something else on my system. (Nvidia has entered the chat). I have no idea what is in the changelog of some random dependency that I’ve never heard of before - and I just remembered, I don’t care. I never care.

> For the last two, you could actually contribute community packages. Have you ever tried Arch Linux, for instance?

That sounds like an even more effective way to waste an entire evening. Maybe multiple evenings! When I see a cool program someone’s written that I want to play around with, what better use of my time could there possibly be than figuring out how to submit community made packages to arch Linux for the random dependencies of some random software someone linked me? All this before I’ve even built the program I want to try out? No thanks.

And how is it more secure? Do programs magically get security audits as part of their addition to arch Linux community packages?

Your comment reminds me of that infamous response in Dropbox’s “Show HN” thread. “Well, the problem Dropbox solves sounds like something easily done with rsync which is already part of arch Linux. Have you tried arch Linux? Instead of starting a billion dollar company, you could submit a simple bash script as a community contribution to arch. Using a bash script in arch Linux is of course less convenient. But I believe it is a trade off.”

And to answer the unspoken question, no. Arch Linux doesn’t have the tens of thousands of up to date packages that are already in cargo. And are already available on every operating system under the sun. Manually adding them to arch sounds like a pointless task that would only serve to make updating my dependencies more difficult and make my software less compatible on all the other systems it already, effortlessly works on. (Like Debian, FreeBSD, macOS and windows.)


I wonder what other institutions are infested with swarms of gadflies that'll all swear up and down in unison that something is definitely good or bad, will attack outsiders with narratives that disagree with their own, and weaken the credibility of the entire institution in the process.

Surely this can't be a phenomenon unique to technology, can it?


You can be Pro-Native without being Anti-Wine.

In 2001 I wrote: "Those irrational people who reject Wine for purely political reasons, are doing much more damage to Linux than Wine will ever do. They're trying to argue that trivial invisible implementation details matter so much to users, that they would reject Linux if their favorite games weren't native ports, even if they ran under Wine. That's totally ridiculous."

I won't name names (because they're easy to guess), but some previously anti-Wine people are still around, and doing great work! And Wine didn't prevent that from happening, or destroy native Linux gaming.

Oh what the heck, ok, I will name one name of one anti-Wine person who's completely disappeared from the tech scene, because he was a dishonest exploitive lying scumbag lawyer who lined his own pockets instead of paying his hard working, talented, and fanatically dedicated employees (ahem make that contractors who he led to believe they were employees), who he deceived and screwed over financially and legally, getting them in undeserved trouble with the IRS, so he deserves to be mentioned: Scott Draeker.

https://en.wikipedia.org/wiki/Loki_Entertainment

https://www.eurogamer.net/a-loki

https://games.slashdot.org/story/01/10/28/1437229/lokis-drae...

https://www.linux.com/news/lokis-draeker-if-i-had-do-it-over...

>NewsForge: Or how about the TransGaming model of using WineX?

>Draeker: The arrival of TransGaming to me is the clearest indication that Loki failed to jump-start a Linux gaming industry as we’d hoped, because TransGaming has nothing to do with Linux games. Their message to game developers is: “Use DirectX and develop for Windows. We’ll help you sell your Windows products to Linux users.”

>TransGaming’s strategy is the same one Corel used in its Linux applications business. In the end I don’t think they’ll be any more successful than Corel was.

https://www.osnews.com/story/211/lokis-draeker-why-run-windo...

>Loki’s Draeker: Why Run Windows Games on Linux? Eugenia Loli 2001-10-24 Games 5 Comments

>“Competitor Scott Draeker isn’t impressed with TransGaming Technologies’ plan to use its version of Wine to get Windows games to work on Linux. […] Not so fast, says Draeker, whose Loki Entertainment has been the flagship company of that “traditional” approach. Draeker has doubts about games running on Wine working as well as games actually made to run on Linux. Although Loki filed for bankruptcy back in August, the company has continued to release games, including Kohan: Immortal Sovereigns in late August and Postal Plus ‘coming soon.’” Read the rest of the article on NewsForge:

https://web.archive.org/web/20011120221025/http://www.newsfo...

Loki - "we're not quite dead yet": Filed for bankruptcy protection not bankruptcy, but future still looks bleak:

https://www.eurogamer.net/article-31053

Loki: A promising plan gone terribly wrong:

https://archive.ph/20020418225227/http://www.linuxandmain.co...

Chris Chapman @retrohistories tweets quoting and summarizing that article:

https://twitter.com/retrohistories/status/142254664440337203...

>Loki was founded by Scott Draeker, an ex-lawyer with an ambitious plan: port already-successful PC games and sell them to Linux users.

>Yup. Sell games to a niche market (particularly in 1998) best known for their conviction that software should be free.

>Digital downloads weren’t really a thing back then (broadband adoption wasn’t there), so, like everyone else, they produced boxed copies. But these were hard to get hold of, especially outside the US. Loki’s global distribution network was small, further limiting sales.

>They burned through money like it was scrap paper, spending extravagantly and massively overestimating demand. They borrowed money from a friend of an employee and bought a projection TV. Late in the company’s life, when they couldn’t make payroll, they kept buying furniture.

>"Though its biggest seller not handled by MacMillan had moved only 5,000 copies, Draeker would order 12,000 to 15,000 copies of new games. These cost money to duplicate and package and, now, money to warehouse. The biggest miscalculation came with Quake III Arena, originally published by id Software. Draeker thought that a "limited collector's edition" shipped in a tin box specially made in China would be just the ticket -- so he ordered 50,000 units, making it the least limited of all of Loki's editions. About 7,000 units sold; most would be unloaded on a liquidator later. The miscalculation cost the company a quarter of a million dollars at a time when it was having difficulty meeting payroll."

>Chapter 11 wasn’t the end for Loki; they restructured and stayed operational for another five months, but not enough people were buying their games to get them out of the hole they were in.

>Then, suspicious transactions and negligent bookkeeping were uncovered.

>Coworkers who thought they were employees were told that they were contractors, and that they personally owed the social security taxes they believed Loki had paid on their behalf all along.

>Even more serious were the large sums of money transferred to Draeker and his wife.

>"So it was not until January that Loki's employees learned that they hadn't been employee at all. Instead of W-2 forms, they received 1099s, which is what are sent to outside contractors. The significance is that Loki employees who believed that withholding and social security taxes were being taken from their pay -- and who had been paid (when they were paid at all) an amount reflecting wages with those deductions having been make -- now learned that instead their pay had been reduced by the amount that would have been paid for those purposes, which now they had to pay themselves, because Loki hadn't."

>Seriously, you gotta read this account of some of the dubious behaviour that happened at Loki. It’s like a true crime story where the culprit got away.

>"Asked if Loki had recorded those erroneous transactions, Draeker replied, "We didn't have anyone keeping records at that time. It was -- it was in the bank statements, the record of that." Those bank statements had not been kept by the company. Additionally, the company was apparently unable to produce any financial records for the period from September 1999 to May 2001. The deposition took on a surreal air at times, with Draeker refusing to say whether or not he is a lawyer and in one spectacular moment testifying that as president of Loki he could say how much had been paid to Scott draeker and when, but as Scott Draeker he could not say whether he actually received the money. Yet when asked if, shortly before the bankruptcy filing, Loki had paid him $13,000, he replied, "Uh, as I said before, there are several occasions on which Loki did pay me. And I don't recall specific dates or amounts."

[...]

Also, I wrote this on slashdot in 2001 about my own experience with Scott Draeker:

https://games.slashdot.org/comments.pl?sid=23108&cid=2491410

>I worked full time at Maxis on The Sims for three years, and all that time I kept the idea of porting The Sims to other platforms in mind. So I wrote code as portably as I had time to, and thought a lot about what would need to be done. I evangelised to my co-workers and managers at Maxis about how I thought Loki would be the ideal company to port The Sims to Linux. Since there really isn't much demand for a Linux port, I proposed doing a Mac port in a way that would facilitate them both. Before The Sims was ever released, I wrote and sent a proposal around Maxis, outlining how to port The Sims to the Mac and Linux, using SDL and Open GL.

>I met Scott Draeker at the Game Developers conference on March 7 2000, about a month after The Sims shipped on Feb 4. I suggested that Loki port The Sims to Linux, because I was optimistic that it was going to be a popular game. He didn't seem to think so, and brushed me off, with a "go away kid, you're bothering me" attitude.

>But I gave Scott Draeker the benefit of the doubt, that he was just tired after a long day in the trade show booth, and not really as curt and indifferent to the idea as he seemed.

>Once The Sims shipped, I left my full time job at Maxis to work on some of my own projects, but I kept working on The Sims for Maxis as a contractor. I worked on content creation tools, developed Transmogrifier and other stuff. I still have legitimate access to The Sims source code, and I keep Will Wright up to date on what I'm doing.

>As a proof of concept, I started porting The Sims to Linux on my own time. I hoped to overcome the skepticism of some people at Maxis, as well as Scott Draeker at Loki, by demonstrating that it was indeed possible, and experimenting to find the best approach empirically.

>My goal was to find the best approach to getting The Sims to run on Linux. Not just to use one particular technology or another. The end result is what matters most, not the way it's implemented.

>Thanks to the encouragement of John Gilmore, I certainly did consider using Wine, but at the time it was nowhere near sufficient. (But since then, Transgaming has made astounding progress with Wine, and it's now obviously quite sufficient, to my delight.)

>So I used SDL to do a native port of The Sims to Linux, and got most of the game running quite well, except for drawing the people and roofs (which would require hacking a system memory back end to Mesa), and sound (which would require using OpenAL, with which I hoped Loki would have been able to help me).

>I was actually quite surprised at how quickly I was able to get a native port of The Sims running on Linux. My previous experience porting SimCity [catalog.com] to Unix took a lot more time. But the tools are much better and computers are way faster now. And of course I was more familiar with the code base.

>I offered the results of my work to Loki on reasonable terms. They didn't seem interested. I talked to some people at Maxis about it, and they said that Loki had been discussing it with Maxis, but they hadn't heard back from them in a long time.

>I finally got some brusque uninformative email from Scott Draeker, and we talked briefly on the phone, but he said that he was really busy, he had a lot of paperwork in progress that had to be finish, and he'd get back to me some time. So I stopped working on the port, and waited to hear back from him...

>I considered approaching other Linux game companies about porting The Sims to Linux, but decided to wait, because I still believed Loki was the best company to do it, and I did not want to undercut their ongoing negotiations with Maxis. Just the opposite -- I encouraged Maxis to quickly reach a fair deal with Loki, because I believed we could work together to get it to market fast. But Maxis wasn't the only company dragging their feet.

>Months later, I finally read on the net that Loki had decided not to port The Sims to Linux, because "Maxis wanted too much money". By that time, The Sims had been topping the charts for months, so of course Maxis was asking a lot for it.

>What I didn't know at the time, was that Loki was soon to declare Chapter 11. So it was actually a combination of Maxis wanting a lot for it, and Loki not having any money. But of course Draeker didn't mention that fact at the time.

>But fortunately, my time and effort porting The Sims to Linux was not wasted, because Maxis needed The Sims to run on Linux, as the multi-player game server for The Sims Online.

>So I used the original port at a guide, and more cleanly ported and optimized the newer Sims Online code to Linux again, making a headless build without all the graphics (removing SDL and DirectX). But the Linux build of the code is for Maxis's internal use on their servers, not as a commercial product for Linux.

>I made the same code base compile on both Windows and Linux, and both with or without graphic. The SDL graphics code still works on Linux, but it's only used for diagnostic and debugging purposes, and not for production.

>It's nice to run the graphical build of the Linux server in order to see what the server's doing during development. But the production server can't require a connection to an X server, and doesn't read in any graphics, because many must run on the same machine in parallel.

>Even though Loki blew their chance to port The Sims to Linux, I still wanted to see it happen anyway. But because so much time had passed since the release of The Sims, I would rather put my efforts into finishing porting The Sims Online client to Linux, and work with some other company than Loki.

>But I discussed it with Will Wright, and he explained to me in his reasonable, thoughtful, well considered manner: a native port of The Sims Online client to Linux would not be practical as a commercial product, because of its nature as a dynamically updated online game.

>The way The Sims Online and many other online games work, is that the server and the clients all run the same deterministic simulation in lock step, funneling any user requested changes through a central "headless" server, so the actions can be scheduled to happen at the same time in all parallel universes.

>So the server simulation and protocol must be EXACTLY the same as the clients, or all hell will break loose. Any online game, no matter what the architecture, requires that the client and the servers be in sync. That's not so hard if the game is trivial like Othello or Quake, but The Sims network protocol is much more complex and quite sensitive to incompatibilities.

>So there is absolutely no way to support any more than one client executable, because the clients and servers must be updated together in real time by downloading patches, just like Ultima Online and other games.

>In order for there to be a Linux port (or a Mac port), it would necessarily have to be done in-house at Maxis, built off of the same code tree, developed in parallel.

>It is simply not possible for a third party developer like Loki to stay in sync with the ongoing development at Maxis of The Sims Online. That would require enormous overhead and resources on the part of Maxis, all for an extremely negative return on investment: it would extremely complicate and slow down the development process, require extra programmers, quality assurance people with Linux skills, etc.

>Cross platform development requires a LOT of overhead -- please believe me if you haven't tried it. The gross income from selling Linux clients would be infintesimal, and would never outweigh the enormous cost of development. There is absolutely no way EA would ever allow Maxis to flush their stock holders' money down the toilet like that.

>That is the harsh, real, undenyable reason that Wine is the most practical and economical way to run games on Linux.

>I am quite pleased that Transgaming has developed Wine so far that it can now actually run The Sims! What's wrong with one Linux company coming up with a free and practical implementation of a great idea, that puts another Linux company out of business? Think of it as evolution in action, to quote somebody whose name doesn't deserve mentioning.

>The way Transgaming has improved Wine is so generally beneficial, that running The Sims Online on Linux the very day it's release on Windows, is now practically in the bag! With Loki's pace and approach, there was never any hope of that.

>The thing that matters most is the fact that a game DOES run on Linux, not HOW it's implemented. Real People in the Real World don't care about religious issues like if it's running under Wine or if it's a native port. It takes over the whole screen anyway, so what does it matter? The end experience is the same.

>Thanks to the generality of Wine, now there exists a whole spectrum of solutions, from binary emulation, to recompilation, all the way to native porting. Wine could be an extremely useful tool in the process of doing a fully native port.

>Those irrational people who reject Wine for purely political reasons, are doing much more damage to Linux than Wine will ever do. They're trying to argue that trivial invisible implementation details matter so much to users, that they would reject Linux if their favorite games weren't native ports, even if they ran under Wine. That's totally ridiculous.

>The fact that a game runs on Linux at all, is MUCH more important than whether or not it's a native port.

>Another advantage to Transgaming's Wine approach, is that all the existing free external tools like Transmogrifier, SimShow, Facelift, Art Studio, Home Crafer, Menu Edit, File Cop, and the many third party tools, will all probably run under Wine. And if they don't, Transgaming considers it a bug in Wine, and wants to fix it. Most of those tools will never be ported native to Linux, so the only way to use them is though Wine.

>I just can't believe that people would attack Transgaming for all that they've done and given back to the community. The alternative is for Linux to simply hold its breath and go without most games.

>The consequences of that alternative are dreadful, and much more harmful to Linux than the imaginary consequences of Wine. Now that Wine has been improved enough to run games like The Sims, it has so many other wonderful uses as well. Why would you ever consider sacrificing all that?

>It's not worth attacking Wine out of political correctness, in order to wait around forever for native ports that will never happen. Please don't cut off your nose to spite your face.

>-Don [donhopkins.com]

[...]


> "Stories often touch on topics like space travel, benevolent robots, disease-curing nanobots, and deep-sea exploration. They lack aliens and beings with superpowers. Instead, the real superheroes are the exceptional North Korean scientists and technologists who carry the weight of the world on their shoulders."

Here is an interesting symmetry as reflected by ideological mirrors. In NK, the state sanctioned imaginal worlds lack others that are superior, and superheroes are loyal technocrats. Here in the West, "market driven" Hollywood insists superheroes are distinct tiny subset of humanity and that it is to our benefit that they are hidden but highly organized. And no, you can't just become one of the special superheroes. Both are aiming to pacify the target society.


Depends what one understands by development.

For many of us it isn't classical UNIX CLI and daemons, stuck on 1970's programming model.


Not only Microsoft, Powershell ideas can be traced back to Xerox PARC REPLs across Smalltalk, Interlisp-D and Mesa/Cedar, or the keyboard+mouse+REPL from Oberon.

Also some influences from AmigaDOS and IBM's REXX.


as someone who was around in the 2000s where MS utterly dominated the computing industry (thankfully now ancient history)

the chap in the comments complaining that the company dominating this specific market (Google) is being MEAN to Microsoft by not helping them out by supporting their competing platform really is quite amusing

> Google historically has never supported MS in any of their initiatives. This is the same company that tried to destroy Windows Phone by repeatedly killing the YouTube app that MS made and never developed any apps for the platform. They have zero presence on the Microsoft Store, even Apple has their apps on the MS Store. I heard of them doing shady things with the Edge browser as well.

meanwhile I'm still here waiting for my native Linux ports of Office and Halo?


Here's a brief history of railroads in the US:

1) The federal government gave railroads massive amounts of land completely free of charge.

2) The federal government applied some regulations, including around transporting passengers. The automobile and plane hadn't been invented yet, so it wasn't that oppressive to railroads. Passengers were making them money.

3) The world changed and passenger service became massively unprofitable. Amtrak was formed to keep the trains running without the private railroads having to bear the losses. All Amtrak asked for was a few hours a day of clearance to run their trains.

4) Fast forward to today, and the railroads aren't complying with their obligations, that were granted in exchange for immense value.

A handout and a bailout later, and you want the taxpayers to give the railroads even more money?

(These original benefactors still exist today. Union Pacific was around when this was all happening. The "N" in BNSF is one of the original benefactors as well. It's pretty amazing to see companies around 160 years after their formation. Pretty generous government grants throughout their history didn't hurt.)


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search:

HN For You