Toxic fog settles over Salt Lake City - <AUTHOR> http://www.cbsnews.com/8301-204_162-57565487/toxic-fog-settles-over-salt-lake-city-doctors-warn/ <comment><USER2> I did grad school in SLC and they suffer from the same geographical/topological problems as Beijing: both cities are basically bowls trapped in by mountains on all sides, where wicked inversions often occur in the winter that trap pollution in with no relief until the winds blow in. Now for this from the article:

> For weeks, industrialized cities in northern China have been dealing with > bouts of sickening smog several times more toxic than Utah's. But by U.S. > standards, Utah's pollution index is off the charts with readings routinely > exceeding a scale that tops out at 70 micrograms a cubic meter. The EPA sets > a standard for clean air at no more than 35 micrograms.

70 AQI, talk about first world problems! Right now in Beijing its around 90, and that is considered very good for us! Last night was 486, and I was crazy enough to go for a walk. Many of us laowai in Beijing get depressed in the winter because of the poor air quality.

<comment><USER3> > Many of us laowai in Beijing get depressed in the winter because of the poor > air quality.

I'm confused about the implication here. Are westerners (laowai) more prone to getting depressed from poor air quality? Chinese (native/migrant) aren't affected?

<comment><USER4> As a westerner in beijing, i think everyone is affected the same by air pollution, though the difference is the "choice" of being here vs. not.

You can see first hand the difference between the Beijing sky and that in Boston. <http://sdrv.ms/10T8oof>

I feel more depressed in the summer time when the air pollution is high. In the summer, the pollution feels smothering and then the oppressive heat of the city can be overwhelming.

In the winter Beijing somedays just feels smokey.

<comment><USER2> Beijing summer high AQI is nowhere near winter high AQI! Summer, you have rain, wind, and all the nice stuff that blows out the pollution. Summers in Beijing just feel bad because its hot and muggy + some pollution mixed in.

We are all affected the same sure enough, but our* expectations might be higher since back home we think "90" is high, when in Beijing that is almost a clean air day. The rest of north and central China is pretty much the same, while the southerners and definitely the westerners (like, west of LanZhou) will complain about the AQI in Beijing just as much as the foreigners do.

* There are many countries with problems as bad or worse than China. If you come from one of those countries, then Beijing might not seem so bad.

<comment><USER4> Agreed, about the pollution levels. My personal view is that the summer is far more depressing (heat, muggy, pollution) then the air in the winter. After 3 years in beijing, most Beijing people talk about the pollution far less, than housing prices, getting a Beijing hukou...

<comment><USER2> When we foreigners get together, we talk about pollution and the GFW since most of us don't hope to buy a house or get hukou :)

</comment></comment></comment></comment></comment></comment><comment><USER5> A BIG part of SLC's air quality problem is that we have so much industrial pollution in the area. Kennicott operates one of the largest strip mines in the world in the valley, and their operation alone accounts for ~1/3 of the air pollution. There are also a lot of oil refineries in the north SL area that spew pollution constantly.

I agree that public transportation and re-thinking commuting is a good step, but it would be great to see some movement on the very controllable industrial pollution problems we have in a state with some of the most lax environmental laws in the nation.

<comment><USER6> Ben here made my point right after I pointed it out. He brings up Kennicott's Bingham Copper mine but seems ignorant that pound for pound of copper it's the cleanest copper produced on the planet.

He also seems to not address the reality that our geography would trap a lot of pollution regardless of where it was originally produced, simply by virtue of the valley's geography.

I'm not against cleaning things up as much as possible. But do you really think shutting down the cleanest copper operation on the planet is a net gain for the environmental movement? Are we really okay with bad air as long as we don't directly produce it? How many of us have smart phones and computers (we are discussing this on HN are we not?)? How guilty do we feel about the pollution produced in 3rd world countries where much of the Rare Earth Elements used in them are mined?

Please people, reconsider the degree of outrage simply because you can see the dirty air. Illusory and placebo environmentalism is not the means to a better world. We need to see things in a planetary perspective if we want to really address planetary problems, and being enraged about SLC's air quality in the middle of an inversion is like getting worked up about polluted water after watching Hurricane Katrina hit New Orleans. Sure the water is atrocious and it's a crying shame, but the water is likely no less polluted in any other metropolitan area hit by a hurricane, it's just the Geography is less advantageous to New Orleans.

</comment></comment><comment><USER7> I live in Provo (just south of Salt Lake City), and I start coughing every time I go outside. I'm fine as long as i'm indoors. The last time I felt like this is when I lived in Beijing for a stint, and before that when I lived in a couple mining towns in Ukraine with no regard for pollution control (Mariupol and Gorlovka).

It's not surprising though, Utah is the perfect storm for this type of pollution. Surrounded by mountains on all sides, the inversions that come every winter drop the temperature by 10 degrees and trap bad air in. Combine that with awful transport (a result of a history of conservatism, a balanced state budget, and towns being spread out as soon as you leave the major freeway), and it's not surprising that this happens pretty much every year.

I'm just grateful Geneva sold off the steel refinery in Orem; the air is noticeably cleaner.

</comment><comment><USER8> Since the problem is soot they should ban diesel vehicles (unless they are very new super clean ones).

So instead of encouraging mass transport they should reduce it. (Assuming they use typical dirty diesel buses.)

Ordinary gasoline vehicles with catalytic converters really don't make much soot. Attempting to restrict those is not the best way to solve this.

</comment><comment><USER9> A professor in atmospheric sciences at the U of Utah has a great blog and has been writing a lot about the inversions lately:

<http://wasatchweatherweenies.blogspot.com/>

I live in SLC. The air is indeed pretty ugly right now. On the other hand, my house is a few hundred feet higher than the valley floor and is mostly above the inversion.

<comment><USER9> To give a few more details, an inversion is where there's a layer of air where it gets warmer instead of colder as you go up. For example, last night at the SLC airport it was 4 degrees F whereas at the top of one of the 11,000 foot peaks near Snowbird it was 34 degrees F.

When we're in a high pressure system (i.e. nice weather) and solar heating is limited due to low sun angle and snow on the ground, this situation is stable. It happens in many valleys in the western US. This becomes a problem in a few specific valleys where a lot of people live (and drive cars). Usually we get a few weeks of this every winter.

</comment></comment><comment><USER10> I live in SLC. It is pretty bad, though to be fair you get really pretty sunsets...

<comment><USER11> And with a good strong wind you get the added bonus of smelling dead brine shrimp rotting in the great Salt Lake. I lived there for most of my life and will never forget that smell.

<comment><USER12> I know now where I will never live

</comment></comment></comment><comment><USER13> Poorly written article from the AP. "...and want large employees to let people work from home." - Bullies who insist on no telecommuting?

Ambiguous reference between the SLC situation and LA... "That's equivalent to a bad day in the Los Angeles area."

Then the reading was 130, the EPA limit is 35, but the scale tops out at 70?

I'm now more confused after reading this article. 1/5 would not read again.

</comment><comment><USER14> SLC, and every other major American city for that matter, is never going to solve their smog problems when they are built such that inhabitants REQUIRE the use of a vehicle to perform the necessary tasks to exist.

Elon Musk might have a solution (thought I'm skeptical) but public transportation cannot to fix the environmental effects of urban sprawl.

</comment><comment><USER15> I spent a year in Idaho years ago. I was really surprised at how smoggy/dirty the winter air gets in some of these Mountain west places that are prone to inversions.

On top of that, woodburning in fireplaces/stoves is also really popular in some of these areas. I remember a few days in Pocatello where you could barely see to the end of the block.

</comment><comment><USER6> Geographically we share the sink hole status with New Orleans, only instead of water it's dirty air that our geography grants us. One thing that drives me nuts about these superficial looks at this is that the inversion would happen to us even if we shut down the refineries and stopped driving. In fact Utah air quality has been steadily improving even while our geography remains the same and our population rises and the number of cars on the road go up.

Stories like this are so easy to take out of context. We have the single largest pollution producing facility, the Bingham Mine/Smelting facilities. Yet when that's reported I don't see people mention that it produces the cleanest copper, environmentally speaking, of any other facility on the planet.

Happily we're not burning coal to keep our homes warm any more, but back when we did Utah's air was far dirtier.

I worked for a time as housekeeping in the Salt Lake Temple and the stories I heard were almost legendary of the kind of cleaning they'd have to do in there back when coal burning was THE way to heat homes in the winter.

But good reporting, in terms of getting readership up and people turning their heads, demands things get taken out of context.

And for those people big on Public Transit they need to know that it's all a placebo. It's not actually better for the environment. Just because you don't see smoke coming out of the actual car you're ridding in doesn't mean it's not being pumped out somewhere else down the line, and to add to that you need to realize all the pollution incidental to building and maintaining the infrastructure of whatever your chosen transit option is. Many also don't realize that in a place as sparsely populated as Utah (speaking here relative to actual big cities) public transit is even more illusory. Presently, for example, I'm here in Lima Peru. If there's ever a city that embraced public transit it's Lima. Yet for significant portions of the day a great many busses and combis and all types of public transit run relatively empty. Yes, commutes and weekends the economies of mass transit seem dead obvious, but don't fall for confirmation bias, if your public transit is available all day long then any benefits you get from packing busses or trains full at commute time has to be balanced out from the costs, fiscal and pollution and energy consumption wise, from the whole of the cycle. And if you bleed a lot of advantages in a city like Lima, Salt Lake doesn't have a prayer. I'd wager good money that public transit is lucky to break even with cars when it comes to pollution produced per transit cycle- if fiscal price is any indicator of impact on energy use and pollution production from any and all corners of the full life cycle of things.

</comment><comment><USER16> This reminds me again at

<http://en.wikipedia.org/wiki/The_Sheep_Look_Up>

The most frightening scifi I ever read because many of its predictions became true, starting with US voting for a cowboy actor as president.

</comment><comment><USER17> I'm amazed by people's ability to rationalize why it's okay to continue commuting long distances and driving cars in general, despite the toxic smog that gets deadlier every year.

Instead of making those hard changes like using public transit or living locally, I guess everyone is waiting for Elon Musk to save the world with his magic-mobiles.

Go ahead, downvote me for telling the truth. I got karma to spare.

<comment><USER8> > Instead of making those hard changes like using public transit

Actually diesel buses make more soot than cars. For this problem, public transit is not the solution. (Unless you use LNG buses.)

<comment><USER18> What are you talking about? The idea is to reduce the total number of cars by getting everyone using public transit. One bus might make twice as much soot as a car, but the bus can bring a lot more than two cars off the road if people ride the bus.

<comment><USER8> Buses make about 150 to 250 times as much soot. Not twice as much. Old buses granted. Newer ones are much better.

<comment><USER19> Have you been reading research papers from the 1950's? If you get on any bus anywhere in the US, you are virtually guaranteed that the bus is less than 10 years old. The average replacement time for Municipal buses is 7 years...10 years with complete engine replacement.

<comment><USER8> I was driving behind a bus in the US just last week - every time the bus accelerated a huge cloud of black smoke poured out of it.

Yes, new buses are good. But there are still plenty of old ones. (And this one didn't look old.)

<comment><USER19> Ah yes, we should go ahead with a ban on public transportation due to a fucking anecdote. You and my former boss would get along quite well.

<comment><USER8> I guess you are not as secure in your beliefs as you thought if you need to resort to swearing. You thought buses are modern and clean, and when you discover different you swear?

Diesel is very polluting compared to gasoline and I hate it. And stop/start diesel is the worst. So despite its great reputation public buses are not the automatic win they are made out to be.

<comment><USER19> They aren't beliefs. And yes, I have a tendency to curse when people advocate for very stupid policies using ideas that can be refuted in less than 5 minutes on Google.

<comment><USER8> I did do some google searches first.

Buses help with traffic and CO2, they do not help with soot. And the city in this article is having trouble with soot.

It would be wonderful if all buses were LNG, then there'd be little drawbacks. But right now they aren't, and because LNG is more expensive cities are buying diesel instead.

PS. In general cursing means you acknowledge your position is incorrect but you wish to use bluster to defend it anyway. It makes little difference if you don't intend this meaning - this is the meaning that is transmitted.

<comment><USER19> In general, being wrong makes you wrong. It makes you more wrong when you tell someone who is right that they are wrong. Soot per passenger hasn't been anywhere near car levels for over a decade. You have to go back past the 1990s to find buses that fare worse than cars on per passenger soot emissions. In 2007, diesel soot emissions were regulated to similar standards as gasoline vehicles. Stop being wrong if you want to be right.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


YOLOv5: State-of-the-art object detection at 140 FPS - <AUTHOR> https://blog.roboflow.ai/yolov5-is-here/ <comment><USER2> I'm just going to call this out as bullshit. This isn't YOLOv5. I doubt they even did a proper comparison between their model and YOLOv4.

Someone asked it to not be called YOLOv5 and their response was just awful [1]. They also blew off a request to publish a blog/paper detailing the network [2].

I filed a ticket to get to the bottom of this with the creators of YOLOv4: [https://github.com/AlexeyAB/darknet/issues/5920](https://github.com/AlexeyAB/darknet/issues/5920)

[1] [https://github.com/ultralytics/yolov5/issues/2](https://github.com/ultralytics/yolov5/issues/2)

[2] [https://github.com/ultralytics/yolov5/issues/4](https://github.com/ultralytics/yolov5/issues/4)

<comment><AUTHOR> Hey all - OP here. We're not affiliated with Ultralytics or the other researchers. We're a startup that enables developers to use computer vision without being machine learning experts, and we support a wide array of open source model architectures for teams to try on their data: [https://models.roboflow.ai](https://models.roboflow.ai)

Beyond that, we're just fans. We're amazed by how quickly the field is moving and we did some benchmarks that we thought other people might find as exciting as we did. I don't want to take a side in the naming controversy. Our core focus is helping developers get data into _any_ model, regardless of its name!

<comment><USER3> YOLOv5 seems to have one important advantage over v4, which your post helped highlight:

 _Fourth, YOLOv5 is small. Specifically, a weights file for YOLOv5 is 27 megabytes. Our weights file for YOLOv4 (with Darknet architecture) is 244 megabytes. YOLOv5 is nearly 90 percent smaller than YOLOv4. This means YOLOv5 can be deployed to embedded devices much more easily._

Naming controversy aside, it's nice to have some model that can get close to the same accuracy at 10% of the size.

Naming it v5 was certainly ... bold ... though. If it can't outperform v4 in any scenario, is it really worthy of the name? (On the other hand, if v5 can beat v4 in inference time or accuracy, that should be highlighted somewhere.)

FWIW I doubt anyone who looks into this will think roboflow had anything to do with the current controversies. You just showed off what someone else made, which is both legit and helpful. It's not like you were the ones that named it v5.

On the other hand... visiting [https://models.roboflow.ai/](https://models.roboflow.ai/) _does_ show YOLOv5 as "current SOTA", with some impressive-sounding results:

 _SIZE: YOLOv5 is about 88% smaller than YOLOv4 (27 MB vs 244 MB)

SPEED: YOLOv5 is about 180% faster than YOLOv4 (140 FPS vs 50 FPS)

ACCURACY: YOLOv5 is roughly as accurate as YOLOv4 on the same task (0.895 mAP vs 0.892 mAP)_

Then it links to [https://blog.roboflow.ai/yolov5-is- here/](https://blog.roboflow.ai/yolov5-is-here/) but there doesn't seem to be any clear chart showing "here's v5 performance vs v4 performance under these conditions: x, y, z"

Out of curiosity, where did the "180% faster" and 0.895 mAP vs 0.892 mAP numbers come from? Is there some way to reproduce those measurements?

The benchmarks at [https://github.com/WongKinYiu/CrossStagePartialNetworks/issu...](https://github.com/WongKinYiu/CrossStagePartialNetworks/issues/32#issuecomment-640887979) seem to show different results, with v4 coming out ahead in both accuracy and speed at 736x736 res. I'm not sure if they're using a standard benchmarking script though.

Thanks for gathering together what's currently known. The field does move fast.

<comment><AUTHOR> Agreed!

Crucially, we're tracking "out of the box" performance, e.g., if a developer grabbed X model and used it on a sample task, how could they expect it to perform? Further research and evaluation is recommended!

For size, we measured the sizes of our saved weights files for Darknet YOLOv4 versus the PyTorch YOLOv5 implementation.

For inference speed, we checked "out of the box" speed using a Colab Notebook equipped with a Tesla P100. We used the same task[1] for both - e.g. see the YOLOv5 Colab notebook[2]. For Darknet YOLOv4 inference speed, we translated the Darknet weights using the Ultralytics YOLOv3 repo (as we've seen many do for deployments)[3]. (To achieve top YOLOv4 inference speed, one should reconfigure Darknet carefully with OpenCV, CUDA, cuDNN, and carefully monitor batch size.)

For accuracy, we evaluated the task above with mAP after quick training (100 epochs) with the smallest YOLOv5s model against the full YOLOv4 model (using recommended 2000*n, n is classes). Our example is a small custom dataset, and should be investigated on e.g. COCO. 90-classes.

[1] [https://public.roboflow.ai/object- detection/bccd](https://public.roboflow.ai/object-detection/bccd) [2] [https://colab.research.google.com/drive/1gDZ2xcTOgR39tGGs- EZ...](https://colab.research.google.com/drive/1gDZ2xcTOgR39tGGs- EZ6i3RTs16wmzZQ) [3] [https://github.com/ultralytics/yolov3](https://github.com/ultralytics/yolov3)

</comment></comment></comment></comment><comment><USER4> I welcome forward progress in the field, but something about this doesn't sit right with me. The authors have an unpublished/unreviewed set of results and they're already co-opting the YOLO name (without the original author) for it and all of this to promote a company? I guess this was inevitable when there's so much money in ML but it definitely feels against the spirit of the academic research community that they're building upon.

<comment><USER5> Totally agreed, kinda seems dirty to call something "v5" when it this is a derivative work of the original.

<comment><USER6> I think derivative is a bit generous. This is just a reimplementation of v4 with a different framework.

</comment></comment></comment><comment><USER3> We made a site that lets you collaboratively tag a bunch of images, called tagpls.com. For example, users decided to re-tag imagenet for fun: [https://twitter.com/theshawwn/status/1262535747975868418](https://twitter.com/theshawwn/status/1262535747975868418)

And the tags ended up being hilarious: [https://pbs.twimg.com/media/EYXRzDAUwAMjXIG?format=jpg&name=...](https://pbs.twimg.com/media/EYXRzDAUwAMjXIG?format=jpg&name=large)

(I'm particularly fond of [https://i.imgur.com/ZMz2yUc.png](https://i.imgur.com/ZMz2yUc.png))

The data is freely available via API: [https://www.tagpls.com/tags/imagenet2012validation.json](https://www.tagpls.com/tags/imagenet2012validation.json)

It exports the data in yolo format (e.g. it has coordinates in yolo's [0..1] range), so it's straightforward to spit it out to disk and start a yolo training run on it.

Gwern recently used tagpls to train an anime hand detector model: [https://www.reddit.com/r/AnimeResearch/comments/gmcdkw/help_...](https://www.reddit.com/r/AnimeResearch/comments/gmcdkw/help_build_an_anime_hand_detector_by_tagging/)

People seem willing to tag things for free, mostly for the novelty of it.

The NSFW tags ended up being shockingly high quality, especially in certain niches: [https://twitter.com/theshawwn/status/1270624312769130498](https://twitter.com/theshawwn/status/1270624312769130498)

I don't think we could've paid human labelers to create tags that thorough or accurate.

All the tags for all experiments can be grabbed via [https://www.tagpls.com/tags.json](https://www.tagpls.com/tags.json), so over time we hope the site will become more and more valuable to the ML community.

tagpls went from 50 users to 2,096 in the past three weeks. The database size also went from 200KB a few weeks ago to 1MB a week ago and 2MB today. I don't know why it's becoming popular, but it seems to be.

<comment><USER3> Well, that didn't take long – our API endpoint keeled over. Luckily, you can fetch all the data directly from firebase:

      # fetch raw tag data
      $ curl -fsSL https://experiments-573d7.firebaseio.com/results/.json > tags.json
      $ du -hs tags.json
      14M tags.json

      # fetch tag metadata (colors, remapping label names, possibly other stuff in the future)
      $ curl -fsSL https://experiments-573d7.firebaseio.com/user_meta/.json > tags_meta.json
      $ du -hs tags_meta.json
      376K tags_meta.json
      $ jq tags_meta.json

Note that's the raw unprocessed data (no yolo). To get info about all experiments, you can use this:

      curl -fsSL https://experiments-573d7.firebaseio.com/meta/.json | jq

I'm a bit worried about the bill. It's up to $50 and rising: [https://imgur.com/ZgmXsWU](https://imgur.com/ZgmXsWU) almost entirely egress bandwidth. Be gentle with those `curl` statements. :)

(I _think_ that's due to a poor architectural decision on my part, which is solvable, and not due to egress bandwidth via the API endpoint. But it's always fun to see a J curve in your bill... It's about $1 a day right now. [https://imgur.com/4gUTLO7](https://imgur.com/4gUTLO7))

<comment><USER7> Can you set it up so that it's only available via cloud? I'm sure that would bother people, but is a better alternative to losing access or you going broke :)

<comment><USER3> We're motivated to keep this as open as possible. I really like the idea of an open dataset that continues to grow with time. If it keeps growing, then within a couple years it should have a vast quantity of tags on a variety of diverse datasets, which we hope might prove helpful.

If anyone wants to contribute, I started a patreon a few minutes ago: [https://www.patreon.com/shawwn](https://www.patreon.com/shawwn)

</comment></comment></comment></comment><comment><USER8> Has anyone (beyond maybe self-driving software) tried using object tagging as a way to start introducing physics into a scene? E.g. human and bicycle have same motion vector, increases likelihood that human is riding bicycle. Bicycle and human have size and weight ranges that could be used to plot trajectory. Bicycles riding in a straight line and trees both provide some cues as to the gravity vector in the scene. Etc. etc.

Seems like the camera motion is probably already solved with optical flow/photogrammetry stuff, but you might be able to use that to help scale the scene and start filtering your tagging based on geometric likelihood.

The idea of hierarchical reference frames (outlined a bit by Jeff Hawkins here [https://www.youtube.com/watch?v=-EVqrDlAqYo&t=3025](https://www.youtube.com/watch?v=-EVqrDlAqYo&t=3025) ) seems pretty compelling to me for contextualizing scenes to gain comprehension. Particularly if you build a graph from those reference frames and situate models tuned to the type of object at the root of each each frame (vertex). You could use that to help each model learn, too. So if a bike model projects a 'riding' edge towards the 'person' model, there wouldn't likely be much learning. e.g. [Person]-(rides)->[Bike] would have likely been encountered already.

However if the [Bike] projects the (rides) edge towards the [Capuchin] sitting in the seat, the [Capuchin] model might learn that capuchins can (ride) and furthermore they can (ride) a [Bike].

<comment><USER9> RGB-D based semantic segmentation is certainly a thing. I'm sure it's also been done with video sequences as well.

<comment><USER8> Yeah I wish the flagship phone manufacturers would put the hardware back into the phone to take 3d photos...even better if you can get point cloud data to go with it. The applications right now are kind of cheesy but they will get better and if the majority of photos taken pivot to including depth information i think it could really drive better capabilities from our phones.

Eyes are very hard to make and coordinate, yet there are almost no cyclops in nature.

<comment><USER9> In theory you could also do this with visual-inertial odometry eg monocular SLAM. But this is definitely something we're looking at in my group (I do CV for ecology), especially for object detection where geometry (absolute size) is a good way to distinguish between two confusing classes. A good candidate here is aerial imagery. If you've calibrated the camera and you know your altitude, then you know your ground sample distance (m/px).

Most flagships can do this though, any multicamera phone can get some kind of stereo. Google do it with the PDAF pixels for smart bokeh (they have some nice blog posts about it). I don't know if there is a way to so that in an API though (or to obtain the depth map).

[https://ai.googleblog.com/2018/11/learning-to-predict- depth-...](https://ai.googleblog.com/2018/11/learning-to-predict-depth-on- pixel-3.html?m=1)

<comment><USER8> High resolution light field cameras would really help here as well. That seems a ways off though.

Are you folks able to do any multi-spectral stuff? That seems interesting.

<comment><USER9> I work mostly with RGB/Thermal, if that counts. My PhD was in stereo/lidar fusion, so I've always been into mixing sensors :)

I've also done some work on satellite imaging which is 13-band (Sentinel 2). Lots of people in ecology use the Parrot Sequoia which is four-band multispectral. There really isn't much published work in ML beyond RGB, which I find interesting - yes there's RGB-D and LIDAR but it's mostly for driving applications. Part of the reason I'm so familiar with the yolo codebases is that I've had to modify them a lot to work with non-standard data. There's nothing that stops you from using n-channel images, but you will almost certainly have to hack every off the shelf solution to make it work. RGB and 8-bit is almost always hard coded, augmentation also often fails with non RGB data (albumentations is good though). A bigger issue is there's a massive lack of good labelled datasets for non rgb imagery.

On the plus side, in a landscape where everyone is fighting over COCO, there is still a lot of low hanging fruit to pick I think.

I've not done any hyperspectral, very hard to (a) get labelled data (there's AVIRIS and EO-1/Hyperion maybe) (b) it's very hard to label, the images are enormous and (c) the cameras are stupid expensive.

By the way, even satellite imaging ML applications tend to overwhelmingly use just the RGB channels and not the full extent of the data.

<comment><USER8> Whoa that's awesome! Love hearing contemporary technology used to detect/diagnose/monitor the environment and our ecological impact. Boots on ground will always be important but the horizontal scaling you can get out of imaging I would imagine really helps prioritize where you turn your attention. Thanks for the info and best of luck!

</comment></comment></comment></comment></comment></comment></comment><comment> ely-s There seems to be an unfair comparison between the various network architectures. The reported speed and accuracy improvements should be taken with a bit of scepticism for two reasons.

* This is the first yolo implemented in Pytorch. Pytorch is the fastest ml framework around, so some of YOLOv5's speed improvements may be attributed to the platform it was implemented on rather than actual scientific advances. Previous yolos were implemented using darknet, and EfficientDet is implemented in TensorFlow. It would be necessary to train them all on the same platform for a fair speed comparison.

* EfficientDet was trained on the 90-class COCO challenge (1), while YOLOv5 was trained on 80 classes (2).

[1] [https://github.com/ultralytics/yolov5/blob/master/data/coco....](https://github.com/ultralytics/yolov5/blob/master/data/coco.yaml)

[2] [https://github.com/google/automl/blob/master/efficientdet/in...](https://github.com/google/automl/blob/master/efficientdet/inference.py#L42)

<comment><AUTHOR> Great points, and hoping Glenn releases a paper to complement performance. We are also planning more rigorous benchmarking nonetheless.

re: PyTorch being a confounding factor for speed - we recompiled YOLOv4 to PyTorch to achieve 50 FPS. Darknet would likely top out around 10 FPS on the same hardware.

EDIT: Alexey, author of YOLOv4, provided benchmarks of YOLOv4 hitting much higher FPS here: [https://github.com/AlexeyAB/darknet/issues/5920#issuecomment...](https://github.com/AlexeyAB/darknet/issues/5920#issuecomment-642213028)

</comment></comment><comment><AUTHOR> EfficientDet was open sourced March 18 [1], YOLOv4 came out April 23 [2], and now YOLOv5 is out only 48 days later.

In our initial look, YOLOv5 is 180% faster, 88% smaller, similarly accurate, and easier to use (native to PyTorch rather thank Darknet) than YOLOv4.

[1] [https://venturebeat.com/2020/03/18/google-ai-open-sources- ef...](https://venturebeat.com/2020/03/18/google-ai-open-sources-efficientdet- for-state-of-the-art-object-detection/) [2] [https://arxiv.org/abs/2004.10934](https://arxiv.org/abs/2004.10934)

<comment><USER10> > open sourced

This is not a verb.

<comment><USER11> It's behaving like one:

[https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=open%20sources&sort=byDate&type=story)

[https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=open%20sourced&sort=byDate&type=story&storyText=none)

</comment></comment></comment><comment><USER12> _In February 2020, PJ Reddie noted he would discontinue research in computer vision._

He actually stopped working on it because of ethical concerns. I'm inspired that he made this principled choice despite being quite successful in this field.

[https://syncedreview.com/2020/02/24/yolo-creator-says-he- sto...](https://syncedreview.com/2020/02/24/yolo-creator-says-he-stopped-cv- research-due-to-ethical-concerns/)

</comment><comment><USER13> Er so this "Ultralytics" consulting firm just borrowed the name YOLO for this model and didn't actually publish their results yet?

<comment><USER14> Yeah, they made the most popular PyTorch implementation of YOLOv3 as well so they're not entering out of the blue, though. [https://github.com/ultralytics/yolov3](https://github.com/ultralytics/yolov3)

The author of YOLOv3 quit working on Computer Vision due to ethical concerns. YOLOv4, which built on his work in v3, was released by different authors last month. I'd expect more YOLOvX's from different authors in the future. [https://twitter.com/pjreddie/status/1230524770350817280](https://twitter.com/pjreddie/status/1230524770350817280)

</comment></comment><comment><USER15> > In February 2020, PJ Reddie noted he would discontinue research in computer > vision.

It would be fair to state also why he chose to discontinue developing YOLO, as it is relevant.

</comment><comment><USER16> Two interesting links from the article:

1\. How to train YOLOv5: [https://blog.roboflow.ai/how-to-train-yolov5-on-a- custom-dat...](https://blog.roboflow.ai/how-to-train-yolov5-on-a-custom- dataset/)

2\. Comparing various YOLO versions [https://yolov5.com/](https://yolov5.com/)

</comment><comment><USER17> Latency is measured for batch=32 and divided by 32? This means that 1 batch will be processed in 500 milliseconds. I have never seen a more fake comparison.

</comment><comment><USER18> Why benchmark using 32-bit FP on a V100? That means it's not using tensor cores, which is a shame since they were built for this purpose. There's no reason not to benchmark using FP16 here.

<comment><USER9> Not sure about the benchmark, but the code includes the option for mixed precision training via Apex/AMP.

<comment><USER18> If you click around enough you'll see they benchmarked in 32-bit FP. Glad they have a mixed precision training option but I really think it's a mistake in 2020 to do work related to efficient inference using 32-but FP.

The problem is that your conclusions aren't independent of this choice. A different network might be far better in terms of accuracy/speed tradeoffs when evaluated at a lower precision. But there is no reason to use 32-but precision for inference, so this is just a big mistake.

</comment></comment></comment><comment><USER19> What does it take to now use this name?

<comment><USER20> Yeah, it's pretty unethical. Looks like they just stole the name without any care. There doesn't seem to be any relationship between these guys and the original YOLO group.

</comment></comment><comment> darknet-rider I really like the work done by AlexAB on darknet YOLOv4 and the original author Joseph Radmon with YOLOv3. These guys need a lot more respect than any other version of YOLO.

</comment><comment><USER21> This is not the first time something is fishy. Back in the early stages of the repo. They were advertising on the front page that they are achieving similar MAP to the original C++ version. But only to be found out they haven't train it on COCO dataset and test it.

</comment><comment><USER22> Is it possible to run these models in the browser, something similar to tensorflow.js?

<comment><USER23> I would try convert to ONNX model and then try to infer with tensorflowjs.

</comment></comment><comment><USER24> It looks like this is YOLOv4 implemented on PyTorch, not actually a new YOLO?

<comment><USER2> YOLO is a neural network, Darknet is the framework. Without both YOLOv4 and "YOLOv5" on the same framework, it makes it near impossible to make any kind of meaningful comparison.

</comment></comment><comment><USER25> I am very interested on loading YOLO into a Raspberry Pi + Coral.ai, anyone knows a good tutorial on how to get started? I tried before and with Darknet it was not easy at all, but now with pytorch there seem to be ways of loading that into Coral. I am familiar with Raspberry Pi dev, but not much with ML or TPUs, so I think it'd be mostly a tutorial on bridging the different technologies.

(might need to wait a couple of months since this was just released)

</comment><comment><USER26> Just read this. Nice overview of the history of the "YOLO" family, and summary of what YOLOv5 is/does.

</comment><comment><USER27> Does anyone know of an open-source equivalent to YOLOv5 in the sound recognition / classification domain? Paid?

<comment><USER28> Like it would identify what you're hearing? "Trumpet!" "Wind whistling through oak leaves!" "Male child!" etc?

<comment><USER27> Ubicoustics [1] would be the closest example to what I am looking for in a FOSS / Commercial offering. Is anyone working on this?

[1] [https://github.com/FIGLAB/ubicoustics](https://github.com/FIGLAB/ubicoustics)

</comment></comment></comment><comment><USER29> If anyone's interested in the direct GitHub link to the repository: [https://github.com/ultralytics/yolov5](https://github.com/ultralytics/yolov5)

<comment><USER30> Hm on this page it has something written in an eastern language under YOLO, [https://github.com/ultralytics](https://github.com/ultralytics) says Madrid, Spain, but then they say "Ultralytics is a U.S.-based particle physics and AI startup"

<comment><USER31> "You only look once" in Chinese.

</comment></comment></comment><comment><USER32> I like to think that the name is also a reference to the fact that this will inevitably be used in some autonomous driving systems.

</comment><comment><USER33> Less weights, more accuracy. Magic :)

</comment><comment><USER34> Just recently IBM announced with a loud PR move that the company is getting out of the face recognition business. Guess what? Wall Street doesn't want to keep subsidizing IBM's subpar face recognition technology when open source and Google solutions are pushing the state of the art.

<comment><USER35> Not something to brag about. Facial recognition has very few applications outside of total surveillance. We should not respect those who lend it their time and effort.

<comment><USER8> >Facial recognition has very few applications outside of total surveillance.

That's not really for you to decide, is it? You're absolutely free to have that opinion of course.

>We should not respect those who lend it their time and effort.

Also your choice of course. Facial recognition is essentially a light integration of powerful underlying technologies. Should 'we' ostracize those working on machine learning, computer vision, network and distributed computing, etc?

<comment><USER36> You didn't really address the author's point which was that there don't appear to be compelling uses of facial technology beyond mass automated surveillance.

I can't think of other uses and I'd be interested if you can come up with some.

<comment><USER37> Some compelling use:

1) assistance to recognizing people (because low vision, because memory fails, because you have a lot of photos...)

2) ensure candidate X is actually candidate X and not a paid person to take the exam in name of candidate X

3) door access control (to replace/in addition to access card)

4) having your own X-Ray (like in Amazon Prime): identify an actor/actress/model

5) having your personal robot addressing you by name

<comment><USER37> also, having models that can run locally on "cheap enough" devices is also quite interesting that you more or less understand.

Compared to using API in the cloud or purchasing Hikvision cameras.

<comment><USER38> Just getting into this. Do you recommend any particular "dumb" camera devices with a quality stream?

<comment><USER37> what's your price range? indoor or outdoor? where do you want to do the inference?</comment></comment></comment></comment></comment></comment></comment></comment>


Ask YC: I'm looking to outsource an iPhone app, where do I find companies? - <AUTHOR>

At my company we develop our own iPhone applications, but we have an application that we don't want to devote our resources to and would like to outsource.
I don't have any experience outsourcing and am not sure where to go to find a company in India/China/etc...
Does anyone have any reputable and good outsource company that they have used in the past? <comment><USER2> Just browsing iphone apps among "Top Paid Apps" or "Top Free Apps" in related category on iTunes and find out what you like. Contact the company or author.

At least that's how our customers find us. It's a bit sound like I'm selling myself. But in case you're interested. here's what've done on iphone with a few highlights & my questions (<http://news.ycombinator.com/item?id=466840>).</comment>


#HashtagBattle - Fight on Twitter - <AUTHOR> http://hashtagbattle.com This site is born from a friendly competition between two Startup Week-ends held the same day in Sophia-Antipolis (France) and Lauzanne (Switzerland). We wanted to know which side would get more tweets.
Camille, co-organizer of the Sophia-Antipolis event, coded the first prototype of #HashtagBattle in one hour on a Friday night.
On saturday night, with some kind help from the awesome Damian, the prototype was tremendously improved and the first release was deployed! <comment><USER2> So cool to see who is the best hashtag between apple & windows or bieber & spears ! :D

</comment><comment><USER3> Add my vote please!</comment>


Mike Wallace interviews Ayn Rand (1959) - <AUTHOR> http://www.ritholtz.com/blog/2012/04/mike-wallace-interviews-ayn-rand-1959/

<comment><USER2> I don't understand what's up with all the tea party political activism on HN today.

> Off-Topic: Most stories about politics, or crime, or sports, unless they're > evidence of some interesting new phenomenon.

<http://ycombinator.com/newsguidelines.html>

<comment><USER3> Do you really believe that she was more of a political activist for the Tea Party movement than a philosophising fiction-writer?

Not everybody that enjoys Ayn Rand is a Tea Party activist. I am certain that there are many that found the self-confidence to live their lives freely and form their own businesses in her books.

On top of that, her philosophy may be wrong but the conversations it sparks are often gratifying for the intellectually curious.

</comment></comment><comment><USER4> I've been reading Rand's Atlas Shrugged and found it pretty boring and naive. OTOH after a friend of mine reminded that Rand was born in Russia and experienced the beginning of its transition into the Soviet Union in the 1920's, I kind of understand her points of view.

At that time, some people probably had a very strong belief in communism, not having seen the really dark sides of it yet. And also, some other people probably saw any kind of social democracy as a threat and considered it all the same as communism, not yet having seen the future of increasing economic inequality, the 1% vs. the 99% and all that.

It's probably good to hear what Rand has to say, but it should be put in the right context (of more than 50 years in the past). Nowadays our western economic systems have different kinds of problems to tackle.</comment>


Ask HN: What do you think about Safari Books Online? - <AUTHOR> Didn't realize how much I loved Safari Books Online until it went down:
http://safaribooksonline.com
The service went down for me last night.  I spoke to a rep and it should be back up in the next hour.
What do folks think about Safari Books Online?
For me, it's a great deal that saves me significant bucks and book space.  It is my go to source for content not available on YouTube. <comment><USER2> I quite like it. For a continuous-learning junkie like me having access to all the books and videos is amazing value for the price.

</comment><comment><USER3> I got a 50% lifetime discount with which the cost comes down to aprox. a Netflix subscription. Given the vast range of books and videos (and the fact that _all_ my favourite publishers are there), the subscription has become a no-brainer for me. My life-blood depends on access to high-quality content to keep my skills sharp.

The web UI could be better, but the mobile app has improved recently. Sufficient for me.

Not sure this offer still exist, might be worth waiting for it.

<comment><USER4> ^ Same (Black Friday discount)

At this price, I think I will continue it indefinitely. Even at full price, the sheer amount of content I think would be well worth it. Not to mention the app features like notes and highlighting.

They also do a beta of the iOS Safari Books app at least via TestFlight which is helpful. I've submitted bugs that have been fixed quickly.

</comment></comment><comment><USER5> Rather I have multiple sources;

I don't usually like to use such a service if there is an alternative which can be easily made offline as PDF, HTML or at best, EPUB. And better not require an account..

There are only few good ones on Wikibooks, still they are worth it... Eg: those on C Programming...

You can get some decent sources from university sites... I think I can learn things very quickly from lecture slides + bit of experimentation.

Since almost all things I want to learn are open source, there are always some great resources in form of documentation for me. I often like terse documentation rather than tutorials since it facilitates faster learning if you know how;

</comment><comment><USER6> My comment is about Safari Online as well as other similar services.

I don't like subscription services that limit offline options or movement of content from one device to another with DRM. Somehow, I prefer reading a (purchased and) downloaded book than having to figure out how to read online content page by page or get it downloaded within some stipulated count or time limits on certain devices.

So no, this service is not for me.

<comment><USER2> Their iOS reading app is pretty good and allows offline downloading of books. I use it regularly.

<comment><USER7> Their Android version also allowed offline use. I do think you need to use an official app to read offline, but it's well supported, at least for books (I didn't try video)

</comment></comment></comment><comment><USER8> I took the trial and really liked it - would probably subscribe if it was a bit cheaper or my employer would pay for it.

I usually prefer paper books but some language and framework specific books get outdated fast (anyone need a couple of Rails 4 books?) so this service nicely solves the problem of bookshelves cracking under the pressure of outdated information.

<comment><USER4> It's been offered at half price on Black Friday the past couple years.

</comment></comment><comment><USER9> I really like it, but I haven't renewed as I can't read the books on my kindle (and with some of the technical books kindle reading isn't the best anyway). I hear my employer might have a license though which is great. Either way I'm waiting to take full advantage of it again when I have my iPad learning setup ready to go.

</comment><comment><USER10> Slightly off-topic but does anyone know authors get compensated on safari? Has their life become better or worse?

</comment><comment><USER11> It is vital and critical for me. Great for keeping up to date and keeping my skills polished.

</comment><comment><USER12> The service is 100% worth it. My only gripe is with the site itself as it's quite cumbersome and slow.

</comment><comment><USER13> I like it, but my employer provides it for me.

If it is free, it is for me, and I will take three :)

</comment><comment><USER14> i just got access a few months ago, and now i am hooked. the content is _great_ and up-to-date !</comment>


The Dawn of Haiku OS - <AUTHOR> http://spectrum.ieee.org/computing/software/the-dawn-of-haiku-os/0 <comment><USER2> dr_dank's comment on Slashdot ( [http://slashdot.org/comments.pl?sid=66224&cid=6095472](http://slashdot.org/comments.pl?sid=66224&cid=6095472) ) pretty much sums up its awesomeness:

 _BeOS was demonstrated to me during my senior year of college. The guy giving the talk played upwards of two dozen mp3s, a dozen or so movie trailers, the GL teapot thing, etc. simultanously. None of the apps skipped a beat. Then, he pulled out the showstopper._

 _He yanked the plug on the box._

 _Within 20 seconds or so of restarting, the machine was chugging away with all of its media files in the place they were when they were halted, as if nothing had happened._

If you've never played with BeOS on an old Pentium II, it's hard to imagine the kind of performance it was able to squeeze out of that hardware. Here's a rough idea:

<http://www.youtube.com/watch?v=BsVydyC8ZGQ#t=17m36s>

<comment><USER3> and now that Lion reimplemented the feature people are hating it.

<comment><USER4> I'd be more forgiving of Lion if it could play even one movie on my Macbook pro without occasionally going into frame-dropping VM-swapping. There's no question that my hand-built BeOS box, 15 years ago, had a far snappier userland experience.

<comment><USER5> > _I'd be more forgiving of Lion if it could play even one movie on my Macbook > pro without occasionally going into frame-dropping VM-swapping._

Try my MacBook Pro then, I play movies all the time on it with no problem of frame-dropping or swapping. And it's a 2007 model.

<comment><USER4> Well, that's weird. Mine's a 2009 model and I _sorely_ regret installing Lion on it. The thing absolutely crawls.

<comment><USER5> I'm running Lion too. If you have repeatable problems, there should be some specific source for it. Tried "Activity Monitor" when it occurs?

Common problems can be: Spotlight doing indexing at the time, Flash fucking around, too little available hard drive space (less than 5GB), some rogue app, etc.

MBP 2007, 2GB RAM. I have now open: Chrome with 7 tabs, Sublime Text, Terminal (2 tabs, one SSH), Mail, iA Writer, Adium, iTunes, TunnelBlick VPN, Photoshop, Transmit, Dropbox, Alfred, Little Snitch and VLC and the movie plays just fine. I use either VLC or MPlayerX though, very rarely QuickTime w Perian.

Now, some people open 50 tabs and think that the browser should automagically handle them all, with 20 instances of Flash running in videos and apps, etc. Not so. VMs are also very resource hungry.

That said, the laptop is noticeably slower than my 4GB / i7 iMac, but not to the point it swaps --unless I start my 1GB linux VM (VMWare).

<comment><USER6> I have Lion, on a 2010 MBP, and I have Activity Monitor open ALL THE TIME.

On Snow Leopard, I found what you say to be true. On Lion, either the mysterious process is eluding me, or it is just much slower. I do development and I can tell you that the iPhone Simulator is a frequent culprit, VirtualBox is also rough (but if I ssh in to my virtual machines rather than use the GUI it's fine), also the Time Machine daemon trying to backup causes things to slow down (even when not plugged in to a disk), but even after that performance is downright crap compared to Snow Leopard.

If you have any idea what my specific source could be I'd be thrilled to hear it. Frequently at the top of my Activity Monitor is WindowServer and kernel_task, except when compiling or other fun things. Even when the interface is locking up I can't find anything fun.

<comment><USER7> Do you by any chance have one or more external hard drives attached? I've been having a lot of lock-up issues while I have six of them connected (through a hub) to a MacBook Pro from 2011 running Lion. It looks like this (also shows it dropping to normal levels instantly):

<http://cl.ly/1s3N2r2X1u2J2K010H2i>

There's no process running wild from what I can see in the Activity Monitor, but it appears to happen a lot less frequently or not at all when I don't have my external hard drives attached.

<comment><USER6> No external hard drives attached, except when I remember to back up my machine (I frequently, but not always, plug it in when it is on my desk, but it is just for Time Machine).

Also, unless I am running heavy CPU things (XCode, VirtualBox machines, etc), I usually don't get a lot of CPU time like that.

<comment><USER8> step 1. go into /Library/Quicktime and move ALL the .component files out of there. step 2. Go into ~/Library/Quicktime and move ALL the .component files out of there. step 3. (re)-install perian step 4. Try playing a movie that usually craps out.

One of the annoying things about Mac OSX is that a rogue codec can mess up ALL media playing activities on the computer- so when you encounter problems, I've found the most successful strategy is to figure out which codec is messing things up.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I was an occasional user of BeOS 4 and 5. Got the free upgrade to 5 in the mail.

It's anachronistic I know, but I think the biggest issue with the OS was timing. If the FOSS movement had as much commercial maturity as today, I think the story of BeOS would be way different. It was pretty well placed at the time in terms of offering a solid media experience coupled with a POSIX compliant environment. I'm pretty sure it would be used like OS X is today by many devs, but without the hardware lock-in.

It was super fun to use BeOS, I just didn't have a workflow that matched it at the time.

</comment><comment><USER10> > Linux, for instance, is based around a core—called a kernel—that was > originally designed for use in servers and only later modified for desktop > systems

As far as I understand the history of Linux, this is just plain not true: Linux was originally a toy project with little focus on either desktop or server systems.

Am I missing something?

<comment><USER11> I'm not sure what Linus' personal intentions were when he first started it, but perhaps the article is talking about the fact that Unix was originally developed for mainframes.

<comment><USER12> Unix was originally developed on what were called minicomputers[1]. These were a distinct class from mainframes, which have always run a whole separate class of proprietary OSes such as IBM's MVS.

Of course nowadays Linux runs pretty well on IBM's mainframes.

[1] <https://en.wikipedia.org/wiki/Minicomputer>

<comment><USER13> And its first incarnation ran on a PDP-8. I think my analog watch has more computing power than that ;-)

</comment></comment></comment></comment><comment><USER14> "What really sets Haiku apart, though, is its efficiency and speed. On my three-year-old desktop computer, Haiku boots up from a cold start in 10 to 15 seconds, and when running it uses only about 170 megabytes of RAM."

Sounds good to me, but 10-15 seconds running on what specs?

Also, looking at the video, it seems like this OS is stuck in the 1990s. That is fine as long as it runs a standards compliant browser, but it just seems lacking based on this video- has this changed?: <http://www.youtube.com/watch?v=ixvppiSB7hc>

I do like that it is just the basics though.

<comment><USER15> Haiku has a native browser called WebPositive, using Webkit, but it's probably a year or more out of date. I understand that there are efforts underway to sync the browser with a more recent Webkit and get features like HTML5 audio/video in.

It'd be wonderful if someone more familiar with the issue would comment on the browser's status.

<comment><USER16> Yeah, just tried it. Web Positive has an HTML5 score of ~150/500 whereas Chrome on my Mac has a score of 400/500. As more and more applications are available as browser apps, if Haiku updates the browser it'll be a win. Haiku seems really snappy and responsive.

</comment></comment></comment><comment><USER17> "Where BeOS drove ahead of other operating systems of its time (and where Haiku is still ahead of contemporary operating systems) is that each individual application uses many threads. The core of the application itself has one thread, and each window the application creates has a thread."

I might not have been around when BeOS was first created, but this is certainly not a new concept today. I don't think I can name a major OS today that _doesn't_ support this model. Both Android and iOS are well known for this technique, but they were hardly the first to adopt it.

<comment><USER18> BeOS was (and arguably still is) the only platform with a UI toolkit and system API that strongly encourages pervasive multithreading. Everywhere else, you have the _option_ of writing asyncronous code, but the libraries are all designed primarily for single-threaded use cases.

<comment><USER5> So, BeOS is somewhat akin Node.js for operating systems?

<comment><USER19> No, every _other_ GUI is akin to Node.js (single-threaded event-driven), while BeOS is more like Java servlets.

</comment></comment></comment></comment><comment><USER20> I like the idea of Haiku OS, but from what I've heard, for binary- compatibility reasons (kernel drivers? All applications? I'm not sure) it still ships with GCC 2.95.

Requiring a compiler over a decade old for a modern OS doesn't seem like a good long-term strategy.

<comment><USER21> IIRC one of the reasons Apple passed on BeOS was that the lack of a stable C++ ABI made app dependencies on the OS classes very fragile. For example, API classes had to be padded out with dummy members to make room for later non- breaking additions to apps.

Is this still a problem? Isn't this why just about every other OS exposes it's lowest level APIs as C apis?

<comment><USER22> I never heard this story before.

Mac OS X drivers are written in C++.

Symbian is fully written in C++.

The new WinRT API for Windows 8 is C++ based along as the user space driver framework.

There is no reason why Apple could not have defined a standard C++ ABI in BeOS, if that was the reason.

The decision to take NeXT instead of BeOS, surely did not have anything to do with technical merits of the underlying systems.

<comment><USER21> I think it's not so much the problem of an ABI but the fact that changing base classes in C++ forces client code to be recompiled because offsets of members and vtable entries change:

<http://haiku-os.org/legacy-docs/benewsletter/Issue2-25.html>

Apparently Apple gets around this the usual way by padding out their API classes with extra unused members. I wonder what the solution is in Windows 8 & Symbian.

<comment><USER23> WinRT gets around it because it doesn't _really_ export C++ the way you're thinking. What it exports are basically COM objects with a bunch of extra CLR- style metadata.

COM avoids the C++ issue because it _only_ allows you to consume interfaces, and, for all Windows compilers when COM was invented (and obviously since), vtables are always in a set location. So the trick is:

      1.  Never change existing interfaces
      2.  Always add new interfaces to the end of the vtables

When you want a COM object, you instantiate it, but you don't work with it directly; you ask for the interface you want to use to talk to the object. As long as the object vendor maintains the old virtual methods, the worst that happens is you ask for the old interface and everything works as normal. This works very well with only a minor speed hit.

I think right after //build, I could tell you how they used CLR metadata to extend the system out to supporting subclassing, but I just honestly don't remember. Similar general idea, though; they still avoid the problem by not actually hitting it.

<comment><USER22> Yeah, I left that a bit in the air.

One can see COM as a kind of operating system OO ABI.

OS/2 SOM was better, but never got much following.

</comment></comment></comment></comment></comment></comment><comment><USER24> I am really happy that there is a project like this. more choice in operating systems can only be a good thing. Well done to all involved.

</comment><comment><USER25> I remember trying BeOS back in the days. It had a nifty feature where you could download an executable and install directly from inside windows, and then boot up in BeOS afterwards. I used to hang out at OSNews where OpenBeOS was heavily promoted and discussed when they started the project. Sure is a long time ago.

<comment><USER26> Ubuntu has that today, it's called Wubi.

<http://www.ubuntu.com/download/desktop/windows-installer>

</comment></comment><comment><USER27> I LOVED BeOS back in the R3-R5 days. I switched over to it completely for a time and started writing software for it. Work carried me in a different direction, and my hobbyist enthusiasm lost steam as I saw that Be was going nowhere corporate-wise. Once Apple decided to go with NeXT instead of BeOS as the basis for its new OS, that was all she wrote. I was disappointed with the technology decision by Apple, but that was way offset by getting Jobs back into the company... and we all saw how well that turned out.

Anyhow, the C++ API of BeOS was amazing. OSX/Objective-C still don't give you that OO access to the OS feel that BeOS had. My one major gripe with their approach was in the way that they managed run-time binding -- it was very brittle from release to release of the OS. As a developer, you had to ship separate binaries for each OS release you wanted to support. Nasty.

I'd love to see Haiku take off and become a viable platform. If for no other reason, just to have a reference version of how things CAN BE DONE.

That cheerleading aside, I have to say that with a fresh OS install, my OSX Lion 2009 PB performs great. Very snappy, runs cool, starts up quickly. It's only when you start installing all your apps, VMs, widgets, drivers, and misc. junk that it slows down. Would Haiku do any better if it had that rich of a software environment?

</comment><comment><USER28> "Linux, by contrast, has hundreds of APIs..."

Wait, there's only one set of system calls into the kernel. What exactly are they talking about here, anyone know?

<comment><USER29> Kernel _and_ user interfaceS

<comment><USER30> OK, here's more context:

"Linux, by contrast, has hundreds of APIs and about as many user interfaces, so you can't just switch seamlessly from one version of Linux to another. The version you use can greatly alter the appearance of your computer screen, the way programs boot and execute, and various other things, all of which make it quite difficult to develop software that consistently runs well on all Linux systems."

That's a mix of true and false statements. The false is that UIs necessarily change by distro: Different distros pick different default UIs, but all of them can run all the same window managers and desktop environments. My telling you I'm currently running Ubuntu tells you _nothing_ about how my screen currently looks.

Also, switching from one distro to another is hardly a difficult process; switching from one computer to another is more annoying.

It's true to some extent in that some distros ship with modified kernels, but that usually isn't a problem for anyone: The changes distros make tend to be invisible to most applications, which sit directly on higher-level APIs anyway.

Finally, implying having fewer APIs is a good thing is disingenuous: An API is a tool and, therefore, a way to organize thought; having fewer APIs implies artificial restrictions on thought.

</comment></comment></comment><comment><USER31> At some stage they must have asked themselves, with all the effort they had gone through, couldn't we just make a serious offer to buy the BeOS IP?

<comment><USER32> Palm bought BeOS for $11M (and those assets were later transfered to PalmSource which became Access).

In 2001 (when BeOS was bought), it might have made a bit of sense. Be was pretty modern then - competing against Windows XP and either the Classic Mac OS which it was far better than or OS X which was very new and so incredibly slow it was nearly unusable - I don't miss those days being a Mac user. However, in 2001 it had just been bought. Palm wasn't going to turn around and say "we spent $11M on this, you guys want it on the cheap?"

Today, Haiku has probably surpassed BeOS in any relevant way. The issue is that the world has moved on. Imagine a really well-made car/engine from 1990 (and imagine that it was like code which doesn't corrode and such). It can still be a great car today in many respects - maybe its performance characteristics still make it a lot nicer than many modern cars. However, you then start thinking about how it doesn't have anti-lock brakes, traction control, electronic slip protection, air bags, a CD player, iPod hookup, bluetooth; plus, it has a an analog carphone installed in the center. That's a bit like was BeOS would be like today.

For example, Haiku just got preliminary WPA support in October. Frankly, if an operating system doesn't have wonderful WiFi support, it's missing a key practical piece for me. Likewise, other operating systems have put considerable energy into compositing window managers to provide things people take for granted today like shadows, transparency, minimization effects, etc. Plus, and this is pure speculation since I haven't used Haiku recently enough to really comment, I'm guessing the web browser ports aren't quite as mature/good as they are for other systems that have a lot more users/developers.

So, licensing the BeOS IP isn't the issue. It would basically be buying an operating system that hasn't been updated since Windows XP came out. Sure, Windows XP isn't terrible today, but part of that is because Microsoft continued to update and maintain it since its release in 2001. Even then, it seems old.

If BeOS was open-sourced in 2001, it might have seen decent adoption. It had a nice GUI, was really ready for the multi-core processors to come, and it might have gotten the traction to see things like Mozilla concentrate on it as a platform. When OpenBeOS (Haiku's former name) started, I think there was a lot of hope. Of course, as they were concentrating on replicating BeOS R5, the world moved on and Apple, Microsoft, and the Linux community had an army of programmers working on advancing their systems while Haiku had a small team trying to resurrect their beloved system. BeOS was very advanced for its day and in some ways I think it's still better, but BeOS today would just be old in many practical ways even if it was awesome in many other ways.

<comment><USER24> So you are saying that they might as well give up?

they have to start somewhere, and choose a good base to start from, from now on its adding those more advanced features and the gravy that users expect.

Perhaps the linux guys should have given up around Slackware 1.0? I mean it wasn't exactly as good as the Sun and SGI boxes I was using back then.

<comment><USER33> You missed his point. He was answering why they didn't try to buy the source from Palm and instead built from the ground up.

</comment></comment></comment></comment><comment><USER34> "Haiku is probably the best positioned to challenge the mainstream operating systems like Microsoft Windows and Mac OS."

This is an absurd statement. Stop wasting time solving problems that don't exist for 98% of the market. "More choice" is not a better than if the choices suck.

"Within 20 seconds or so of restarting, the machine was chugging away with all of its media files in the place they were when they were halted, as if nothing had happened."

This was really cool in the early days of BeOS. But that was more than a decade ago.

People of earth: there is a talent crisis right now. The world needs great developers to build awesome apps for a whole new class of machines. If you feel an urge to "start from scratch" — help rebuild everything for mobile. It's a big job, there are too many projects and not enough developers, and you'll be contributing to a seismic shift in computing.

Stop solving problems that don't exist for most people. Build apps that people will use. Do big things that address 98% of users. These guys clearly have dev chops that I admire, so don't waste them on a project like this.

<comment><USER35> _> If you feel an urge to "start from scratch" — help rebuild everything for mobile._

Given that mobile hardware is about where desktop hardware was when BeOS was invented, I wonder if some company could use it as a new smartphone OS. There's an unfinished ARM port in progress but would probably need commercial support to complete.

The thing about innovation is, it's not always possible to predict what will be valuable or not. Not many people would have predicted Linux back in Linus's early days, for example.

<comment><USER13> You know Palm (or was it Access?) bought Be (and BeOS) for reasons then (and, to be fair, now too) unfathomable.

Now they can say "That's what we intended all along" ;-)

<comment><USER36> WebOS's biggest problem was UI performance. Sick, sad irony strikes again.

<comment><USER37> No, WebOS's biggest problem was either a lack of third party support or sub- par devices to run on.

</comment></comment></comment></comment></comment><comment><USER38> The problem with open-source OS's is that they can't take advantage of things like attractive fonts for the user interface.

There has got to be a better open-source font than what Haiku is currently using (<http://www.haiku-os.org/docs/userguide/en/deskbar.html>).

<comment><USER39> This is no longer true -- there are a few quality typefaces made by professional designers available for open source projects, for example DejaVu, Droid, Arimo/Tinos, PT Sans, Ubuntu. Even Mac OS X uses an open source font for a part of their interface (Menlo, based on DejaVu Sans Mono).

timc is right, what you see is unattractive font rendering (no subpixel rendering, full hinting). For the state of the art of font rendering in open source projects, look at Ubuntu or Infinality.

<comment><USER40> Those fonts definitely have sub-pixel hinting - easy to spot if you zoom in on any of the pics - the font is just not a very good UI font.

<comment><USER39> I don't see it - <http://i.imgur.com/mZV1K.png>

The font seem to be DejaVu Sans, and it's pretty good with proper rendering: <http://i.imgur.com/ixI70.png>

<comment><USER40> I looked for an image with a white background <http://i.imgur.com/9aTz2.jpg>

<comment><USER39> Yep, this is it. Still full hinting, though.

<comment><USER40> Really? The blues and oranges tell me its sub-pixel rendering.

<comment><USER39> Yes, it's subpixel rendering on your screenshot. Hinting is "full" as opposed to "medium" or "slight": <http://www.clearevo.com/blog/files/AfterFullHint.png>

<comment><USER40> Ah yes, I see what you mean, sorry!

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER41> Could someone knowledgeable comment on SSD support ? How does Haiku behave on SSD ?

</comment><comment><USER42> "Generally, there is one thread for each application and one for the operating system's user interface as well."

I think the article writer meant "process" -- there are many threads per process, and that is present in most "contemporary operating systems". If this is their (Haiku Inc.'s) attempt at PR... they are not doing it well.

<comment><USER43> The writer meant exactly what he wrote. Thats the reason you have to delegate UI updates from worker threads to the UI thread.

</comment></comment><comment><USER44> Back when I wanted to get involved (I had a lot more free time), I saw it as an opportunity to have a graphically friendly operating system á la OS X, but actually completely open source.

</comment><comment><USER45> Just started downloading Haiku ,looks cool to me.

<comment><USER13> We have machines scattered throughout the office for meetings (mostly Jira or other web applications). One of those has Haiku running and people seem to like it just fine.

I do find, however, the ergonomics of the window manager to be atrocious. The little tabs, while faithful and part of the visual identity of BeOS, are, perhaps, the worst idea since the invention of overlapping windows. I'd suggest focusing on the 80's icon style and 45° perspective as visual identify and ditch the title tabs.

<comment><USER46> The stack and tile functions might make you reconsider: <http://www.youtube.com/watch?v=4Y-6YmGd30A>

<comment><USER13> Cool, but I still think tabs should be as wide as the window when not stacked. Small tabs only make hitting them harder.

<comment><USER47> Protip (sorry for using the term), stop using the titlebar to move Windows. I feel physically encumbered when using Windows or OS X because I can't Alt+Drag windows around. It will make you so much faster because you just hold Alt and click and drag. No more searching for that tiny little microscopic bit of window to drag. (For example, Chrome on OS X has almost _NO_ hit space to drag the window). I guess this post is sorta useless if you don't use Linux, but take it for what it's worth I guess.

<comment><USER13> I have given up on windows. Most of the time mine are maximized and I switch spaces instead.

<comment><USER47> I can't bring myself to do that on a 15.4" screen (I like the real estate specifically _for_ multitasking and looking back and forth) but I've seen it leveraged extremely well on a 11/13" Air.</comment></comment></comment></comment></comment></comment></comment>


Lessons Learned Building Open Source Software - <AUTHOR> http://mitchellhashimoto.com/post/20106073460/lessons-learned-building-open-source <comment><USER2> ++ for documentation. I'd say start with that first and think about how a brand new user will use your software. How do I install? What are the dependencies? Etc.

Good documentation can easily trump bad code and architecture.

</comment><comment><USER3> With no experience at all, I'd like to add a marketing lesson: if you write a blog post concerning your project, make sure it features an easy link to that project.

</comment><comment><USER4> I couldn't find "support the major operating system platforms".

That means my ten year supported version of Red Hat or Windows.

<comment><USER5> There's a whole paragraph that starts with "Support Windows ASAP".</comment></comment>


FCC Restoring Internet Freedom Docket - <AUTHOR> http://www.emprata.com/reports/fcc-restoring-internet-freedom-docket/ <comment><AUTHOR> This is the Emprata study from September of the comments.

Each side of the issue seems to have problems with credibility regarding the comments. Apparently, they are almost all fake, with anti-repeal having been from email addresses at pornhub, international email addresses, and FAKEMAILGENERATOR, and many pro-repeal having been duplicates.</comment>


Ask HN: Feedback on my online store builder collecting payments in ETH - <AUTHOR> As the title says, I built a little editor that allows you to easily create a personal/project page, sell products and and collect payments in ETH. Customers can simply buy via Metamask.
The project stemmed from my experience with uniswaproi.com, where I allow users to purchase paid plans with Metamask. It has been working great.
I hope this will be useful for some of you experimentaing with web3 and connected business models! If you give it a spin and have any comments or feedback, I'd love to hear them!
https://www.1eth.me/ <comment><AUTHOR> Clickable link: [https://www.1eth.me/](https://www.1eth.me/)

</comment><comment><USER2> Protection against volatility? Why not try USDC, DAI, etc?

<comment><AUTHOR> Great observation, these are in roadmap if there is demand

<comment><USER2> Also, infra with tx's on ETH is very finicky. Error handling for dropped tx's etc. You have probably thought about that.

<comment><AUTHOR> Yeah you're right, it's pretty messy. There is a fair amount of thinking that went there</comment></comment></comment></comment>


Fluid Images - <AUTHOR> http://unstoppablerobotninja.com/entry/fluid-images/ <comment><USER2> Much simpler solution.

      <img src="" style="width:98%" />

Works with all browsers. The 98% would handle nicely round-off errors.

</comment><comment><USER3> I tested this in FF 3.6 and MSIE 8 and while it kinda "works" in MSIE 8, it does not work as in Firefox. The picture continues to scale up beyond 100% and doesn't stop there, which I thought was kind of the point behind all this.</comment>


Ask HN: Why is kotlin colon happy? - <AUTHOR> Kotlin is the hot language of the week. Many people are excited because it makes end of line semi-colons optional. The issue I don't see anyone asking is why they then use colons around types?<p>Are they trying to avoid looking too much like java? The colons look like syntax litter to me. I'm hoping a language designer can provide some rationale for it. <comment><USER2> Colons make the parser implementation easier?

<comment><AUTHOR> You can't use whitespace in a variable name so I don't think that's it.</comment></comment>


London Police to deploy facial recognition cameras - <AUTHOR> https://www.bbc.com/news/uk-51237665 <comment><USER2> You are cattle in a free range tax farm. its like stamping you with a number and putting it in a book for them to look at. think about that next time you consider how free you are.</comment>


Executing multiple commands in SSH session against multiple machines - <AUTHOR> https://ops.tips/blog/multiple-commands-in-ssh-session/ <comment><USER2> There's quite a few packages that will do something like this in possibly more efficient (parallel!) and structured way.

In RHEL7/Centos7 for example there is dsh, mpssh, mussh and of course Ansible (mentioned)

(I'd like to see a mention of why he chose StrictHostKeyChecking=no)

<comment><AUTHOR> Oh, I didn't know about either mpssh and mussh! Thanks a lot for mentioning, it does the job super well!

I'll update the article with a note about disabling the checking. Thanks!

<comment><AUTHOR> `mpssh` does the job so well! I'll update the post with a quick use of it as well. Thx!

<comment><USER2> You're welcome! I was meaning to do a comparison of these tools myself; good luck with them.</comment></comment></comment></comment>


Smalltalk-87 - <AUTHOR> http://www.wirfs-brock.com/allen/things/smalltalk-things/smalltalk-87 <comment><USER2> This raises an interesting question, what added value do "classes" provide over prototypes?

The way I see it is if every object (-instance) can be derived from another instance that makes programs harder to understand. Classes are invariants of behavior which all their instances obey, which makes it possible to reuse your understanding of a class to understand all its instances.

It's a bit like the certificate systems we have in the human society. When someone is a certified medical doctor we know more or less what they can do, we don't have to investigate in detail do they have the skill to be a physician.

But I'm not sure this is all there is to the benefit of classes. Is it?

<comment><USER3> Classes have several roles. They can indicate type. They allow meta programming (where a car is seen not as a car but as a bunch of stuff in the computer's memory). They allow shared state for their instances.

With objects that can directly inherit or delegate from each other you can put shared state in a parent object.

For the role of type the Self VM used things called "maps" that were not visible at the language level.

For meta programming Self introduced "mirror" objects.

</comment></comment><comment><USER4> Around this time, Sun Microsystems Labs was developing Self, a child of Smalltalk that ditched classes for prototypes. Work on improving the VM's performance using a JIT and generational GC helped when developing Java's VM a few years later.

<comment><USER5> As I understand it, when Sun developed Java, they ditched Self. Some of the Self team left, and created a Smalltalk VM using the Self VM techniques called Strongtalk. Sun belatedly realised they needed a fast VM, and rehired the team which formed the basis of the HotspotVM.

<comment><USER6> That same team--led by the same guy: Lars Bak--was later hired by Google to develop v8 for Chrome and later built the VM for Dart (which has some really powerful features in static object layout and AOT support). Virtually every single seminal VM for decades was designed by this same group of people, with almost all other VMs you see just borrowing those same techniques to apply to other languages.

<comment><USER7> And then Lars Bak left, I guess desilusioned with out things turned out for Dart, and is now doing "Dart for IoT" back in Denmark.

[https://www.youtube.com/watch?v=mPna6D21Eqg](https://www.youtube.com/watch?v=mPna6D21Eqg)</comment></comment></comment></comment>


The Weather Channel on Microsoft Surface - <AUTHOR> http://blogs.msdn.com/b/surface/archive/2010/07/19/the-weather-channel-on-microsoft-surface.aspx <comment><USER2> Noticed there was a bit of lag between any operation... Anybody have an idea if it was a platform issue or a data fetching issue?

<comment><USER3> I can't confirm its a platform issue, but I will provide you my experience using the surface I felt leg for many parts of the application.

</comment></comment><comment><USER4> Is it just me or does it seem like this is a hammer looking for a nail?</comment>