Windows98 Running in the Browser - <AUTHOR> https://copy.sh/v86/?profile=windows98 <comment><USER2> Back when the system settings could be reached with less clicks, were organised in a logical way and didn't use most of the screen as white-space.

<comment><USER3> You mean before windows tried to be designed as a a tablet OS while being on desktop for 8.0, failed on both as easily predicted, and then refused to admit the mistake ever since beside the one mandatory change of adding a normal start button / menu back?

That full screen start view was one hell of an abomination....

<comment><USER4> To be honest, I think it was not that bad from a usability point-of-view, agnostic of history. People were just not used to a full-screen, search- focused start menu. A similar thing happened with Vista, people were overwhelmed with the wildly different UI. The next version was then a slightly milder version of it, and at the same time people had gotten used to it a bit, so most were happy with Windows 7 and are now happy with Windows 10.

It's interesting to see how strongly change-averse most people are when it comes to those things.

<comment><USER5> > To be honest, I think it was not that bad from a usability point-of-view, > agnostic of history.

Perhaps in a vacuum it might work. But this is the real world were hypothesis are just that.

> A similar thing happened with Vista, people were overwhelmed with the wildly > different UI

No. People were apparently overwhelmed by system instability and resource hogging (mainly hard drive grinding). I don't remember people complaining about the UI's usability. Though there were UI complaints which were mostly echos of the same complaints leveled at the glossy "Teletubby" XP theme.

> It's interesting to see how strongly change-averse most people are when it > comes to those things.

Interesting? It's human nature. We develop habits and routines which take time to memorize and get right. It's work which we personally invested. I'm sure you have routines that if changed by an external force without choice would be upsetting to you.

<comment><USER6> > and resource hogging

Memory usage used to be a major complaint (possibly the biggest) even if it was made clear repeatedly that the OS was simply keeping more stuff in RAM instead of dumping it to disk specifically to improve performance. A mechanism that stuck to these days. That memory isn't marked that obviously in the Task Manager now, and memory is is no longer such a luxury so people don't complain anymore. But on my 16GB machine I have 4.1GB in use clearly marked on the graph, and another 7.5GB cached that is not at all made to jump at people. People want the added goodies and expect absolutely no impact on anything else.

When XP was launched we heard the same grumbles. XP was bloated, had higher resource usage than 98/2000, less stable than 2000, not compatible with a lot of hardware, weird GUI. By SP3 people were loving it and by the time Win 7 arrived nobody wanted to let go of XP. Win 7 was bloated, had higher resource usage than XP, less stable than XP, not compatible with a lot of hardware, weird GUI. By SP2 people were loving it and by the time Win 10 came along nobody wanted to let go of Win 7. And no, it's not an issue of OS quality going down. Like you said, people just get used to stuff and can't take change and when you combine it with the lack of understanding you get all kinds complaints.

Reminds me of an anecdote about a certain car made for the low end market, targeting a segment of owners of 20+ year old clunkers. Everyone would buy it and complain that the fuel consumption was _huge_. Strangely enough this was a modern engine, certainly more efficient than the old ones it was replacing. The problem? The fancy computer was showing instantaneous fuel consumption. When accelerating? 25 liters/100Km. Outrageous! The company just hid the instantaneous counter and left only the very reasonable average. Problem solved. Then there were the "I can't feel the road with this power steering" complaints which worked themselves out, although to this day there are people who swear the old cars were better (they were most definitely not).

Between lack of knowledge, nostalgia goggles, unreasonable expectations ("all of it, for free"), and a few more things these popular opinions of tech of the past aren't all that useful. It says a lot about the commercial success of a product, not its actual qualities.

<comment><USER7> I am pretty sure Windows 7 was pretty highly praised upon its release and considered vastly superior to Vista, and at least on par with XP as far as usability.

<comment><USER6> Vista was a blip on the radar and nobody ever really used it as a reference point for anything other than ridicule. XP was running strong even in 2014 when it went out of support so it makes sense this was the bar to pass for Win 7. And the vast majority of users jumped from XP to 7 as the numbers confirm.

In 2009 when Windows 7 was launched, Vista's market share (all desktop OSes) reached the all time peak of 18%. At the same time the (then) 8 year old Windows XP had 72%.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Plugging Fabrice Bellard's [https://bellard.org/jslinux/](https://bellard.org/jslinux/) where you can run linux and windows on a hand crafted js x86 emulator.

<comment><USER9> Of course it was Bellard. Of course.

<comment><USER10> The challenge is to find something he made that _isn 't_ in some way impressive.

<comment><USER11> The graphical design of his website?

<comment><USER12> There is no design so there is nothing to judge about.

<comment><USER13> We can judge him for his design, which is to consciously choose to not focus on design :)

</comment></comment></comment></comment></comment></comment><comment><USER14> Here is something that I stumbled upon that I think was a big loss: HTML Help [[https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help](https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help)]

It's unfortunate that Microsoft didn't work toward making it an open source standard for documentation. We'd have avoided every other documentation having it's own format, style, etc... Plus you get the whole documentation in a single file, not worrying about broken stuff, missing images, broken links, etc...

<comment><USER15> I remember when you could bypass the login prompt and open a web browsing session by going to HTML Help. If I recall correctly you could run executables from the resulting browser's address bar too.

<comment><USER16> I think that was still a bug in Windows XP.

<comment><USER17> With Windows 10 you can boot from a DVD/USB and replace system files in the Windows directory related to the accessibility options. The accessibility options are available at the login screen and are ran with admin privileges. Then you simply click the button to start the accessibility options and bam you've changed the administrator password.

</comment></comment></comment></comment><comment><USER18> It's funny how I find Win98 more user friendly and logical than Win10. Just look at the start menu where thing are sorted in folders. No ads optimizations anywhere. Just an annoying shortcut on the desktop for MS Internet.

Is it possible to make a program like the sheep.exe nowadays? It is awesome.

<comment><USER19> Gnome 2 was Windows 95 UI, refined, cleaned of all bloat and with a modern look (for his time). All installed apps were automatically stored is the right sub-menu in the Application button. It was really neat to use.

<comment><USER20> XFCE basically still is that. No "reinventing the desktop experience" junk, just a rock-solid desktop with all the features you expect.

<comment><USER21> All features except running on Wayland.

</comment></comment></comment></comment><comment><USER22> To me, still the best UI/UX OS experience. That menu organization is just perfect. Everything is crystal clear about what is selected or not. No idea why the OS moved from this layout.

<comment><USER23> yes. in my opinion though, windows 2000 was the pinnacle.

it had the user experience of windows 98 but was also a lot more stable.

<comment><USER24> Non-NT Windows didn't support memory protection. That's the main reason why it was much more stable. Programming on Windows 98 was a nightmare. If you, for example, went too far with your `i++` you could've crashed the system.

<comment><USER25> That's not actually true. It was far more nuanced than this.

</comment></comment></comment></comment><comment><USER26> Now you have a VM in a browser on a cellphone. And my cellphone still have sometimes problems on so many pages because they are so bloated. A full OS does load faster then so many website ..

</comment><comment><USER27> Awww, "My Briefcase"! I had totally forgotten that was a thing :) What a nice little nostalgia trip.

<comment><USER28> Omigosh, I really miss the heck out of when Windows had charm, and personality like this.

Stuff like Hover! - getting that Weezer music video with the Happy Days set on the Win 95 media edition or whatever...such cool little things that displayed a sense of 'fun' about very business-centric software.

<comment><USER29> My Pentium 100 could play this 320x240 video [https://www.youtube.com/watch?v=iqL1BLzn3qc](https://www.youtube.com/watch?v=iqL1BLzn3qc) fullscreen with no choppiness. I had forgotten about this video until I saw it last year...

But Windows had skeumorphisms, even nowadays the screen with everything minimised is called "the desk[ ]top".

But I guess briefcases and recycle bins made things relatable...

</comment></comment></comment><comment><USER30> Wow, what a flashback! This was the OS I actually grew up with. I remember being 3 or 4 years old and playing Carnivores 2 on my Dad's Windows 98 PC. Even the slowness and unresponsiveness is there, just like I remember! Yeah...this was the golden age. So much hope and so much optimism for what could be in regards to technology and what it would allow for the general population. I still think we're not there, but we can get there still, perhaps.

<comment><USER31> > _this was the golden age. So much hope and so much optimism for what could > be_

Funny that because I grew up in the 80s and for me the golden age was 10 to 15 years earlier and I saw Windows 98 as the decline.

There was so much variety and experimentation in the 80s, and so much excitement too when GUIs first started appearing on home computers. There was also much more diversity in the computing landscape with different hardware architectures and operating systems. In fact back then DOS machines were some of the least interesting hardware and early Windows (pre 3.x) was just terrible compared to what Acorn, Atari, Amiga and Apple were doing. Then came the mid-90s and everything had converged into x86 running Windows. I remember at the time feeling rather let down by just how boring and crummy desktop computing had become considering all the interesting things that preceded it. Things picked up again once I discovered BeOS and Linux -- I guess even in the 90s I didn't like Microsoft Windows and to be honest little has changed over the years.

That's just my opinion though. The "golden age" is a very subjective thing that I suspect is largely driven by the age of the observer.

<comment><USER13> I grew up using Windows XP/Vista and browsing the early days of the interactive web, mostly based on Flash. For me of course that was the golden age, and now we're stuck with huge walled gardens and invasive adtech…iPhone had come out and it was amazing watching the mobile market rapidly advance. I remember seriously suggesting Windows Phone to my parents…Google Docs totally upended how we did assignments in late elementary school.

<comment><USER30> I don't think Google Docs was a thing until I was in high school. Still, don't think my schools adopted it quickly. I do have many fond memories of flash games too (and of course, viruses I inadvertently introduced to my parents' computers).

Back when I was learning computers in elementary school, we were taugh to use Yahoo! as our search engine and most of our 'computer' assignments for the day involved drawing butterflies in Microsoft Paint or seeing how many words we could type per minute.

</comment></comment></comment></comment><comment><USER32> First think I had to do was see if Active Desktop worked... And yes it does. "View My Active Desktop as a web page", I guess Windows 98 was just ahead of its time.

<comment><USER33> Set the desktop background as this site for some winception!

</comment></comment><comment><USER34> Does anybody have a reasonable explanation why windows 10 requires a SSD and so much ram?

I wish a kernel engineer could give a good answer to that question.

One side of the answer could be that the software that is bigger, but honestly that doesn't explain everything.

I wish somebody could confirm Wirth's law is real and that there are valid example of it.

<comment><USER35> The same reason Facebook loads multiple MBs of JavaScript code for something that could have been not more than 1 MB. One can't help but wonder about nefarious purposes: either collecting user data or abusing the computing resources. For companies that tend to hire the best and the brightest, the 'software bloat' theory is not compelling.

Curiously, major Linux distributions have also gotten significantly slower compared to early 2000s versions.

I wonder, for a thought experiment, what if companies stopped development on software when it reaches certain stage of maturity, say Windows 2000, providing only necessary security updates or optional visual changes?

<comment><USER18> I was very reluctant switching from win xp to win 7. Unless the 64bit era would have forced me I rather would have stayed put.

New software is really not adding much to the table after some point of completion since the software companies seems to mostly add pet feutures and user hostile fads be it star menu, complete gui changes, 'enterprise' admin lookout or ads and tracking.

E.g. Facebooks 1000s of developers seem to add a net of antifeutures to their site. On Netflix you can't even disable autoplay.

It is the same really for software moving to remote mainframes. The companies rather hide and burry the old desktop versions deep.

</comment></comment></comment><comment><USER36> Impressive! But loading Google for kicks, in IE, sort of killed it.

Definitely can feel the nostalgia.

I remember the first time I decided to leave Windows 95 run overnight, the next morning, moving the mouse would send the harddrive playhead flying like crazy... You know the old "SHRrrrrt Shrrrt..."

It had such a memory leak overnight that moving the mouse was causing the swap to kick in non-stop!

<comment><USER37> Interesting. In 1997 I had a thinkpad running Windows 95 and I went weeks between reboots. It was rock solid.

<comment><USER38> Windows 95/98 stability really depended on the quality of your hardware, drivers, and software. If things intracted poorly, it was easy to get a system that needed a reboot every few hours to stay responsive.

<comment><USER39> Agreed. Drivers were a big one. As I remember, they had unfettered access to everything... so they could consume all ram or cpu or read any part of memory. Powerful and scary.

<comment><USER40> In win95, everything had access to everything if it wanted. E.g. DLLs were mapped in a shared memory segment that was shared between all applications. Lots of 16 bit code was still running, and this did IPC basically by messing in some other program's memory. Backward compatibilitty required very thin walls between processes.

DOS TSR programs started before windows were still running. I had one that popped up a calculator in dos text mode, and if you pushed its hotkey in win95, it switched win95 back to text mode, paused win95, did its thing, then popped back in win95.

Only the very basics of protected mode and virtual memory where there, and a well-behaving program had a reasonable chance of staying in its own sandbox. But only because it wanted to. Seen from the CPU, you could argue EMM386 was more the actual OS than win95/win98.

None of this is meant to be negative. It was a solid step up from windows 3.x, and yet quite usable with 4MB RAM of which the first 1MB wanted a very different treatment.

</comment></comment></comment></comment></comment><comment><USER41> Ha the beauty of calling defrag.exe and hoping your pc would run faster after it. So relaxing to see blue block move around (with the occasional horror of a red block indicating an error)

</comment><comment><USER42> Shame we're limited to 16 colors...miss those title bar gradients :D

Was this the pinnacle of UI design, or is nostalgia clouding our judgment?

<comment><USER43> I think the pinnacle must have been before the title bar gradients were added. They always annoyed me: is the title bar any less of a title bar towards the right? No? Then why does it fade out?

<comment><USER44> The color is a background for the text. It fades out because the bar stops being about showing the title text, and starts being about showing window controls, that exist as buttons with their own backgrounds and borders.

Sort of like how desktop icons have text with a blur-extruded drop-shadow. It fades out at the point where text is no longer shown.

<comment><USER43> The title is shown in the entire title bar (e.g. long titles for web pages) all the way until it reaches the buttons, which as you say have their own border, so there is no gradual change in its character. It's 100% draggable and 100% showing text all the way, so the form (showing gradual change) is at odds with the function (sharp distinction between title and buttons).

</comment></comment></comment></comment><comment><USER45> What interests me is the core interactions with Windows systems remain mostly the same, unchanged, in the span of last 20 years!

<comment><USER46> Isn't the same true for osx and linux?

<comment><USER47> > osx

Between architecture changes (PowerPC to x86 to x86-64 and next up ARM), and compiler changes (I doubt Objective-C code written for OS X 1.0 will compile on the latest XCode), breaking API changes, security changes, and even deprecating standards (can't use latest OpenGL, you gotta use Metal)... not really.

<comment><USER13> Depends on how complicated it was. I can assure you that your simple GUI still mostly works as those classes came from NeXT and aren't going anywhere soon.

</comment></comment></comment></comment><comment><USER48> I immediately played Freecell, which I spent way too many hours playing as a kid.

</comment><comment><USER49> Ping localhost works as well. Now to see if you can kill the machine by causing a ICMP packet buffer overflow.

</comment><comment><USER50> Has it crashed for anyone yet? I tried using Windows Update and it hung, it's Windows 98 alright.

<comment><USER51> you can crash it with the /con/con commad too

edit: for the ones who haven't lived the windows 95-98 era: [https://coderanch.com/t/131585/engineering/Folder-con- Window...](https://coderanch.com/t/131585/engineering/Folder-con-Windows- invalid#639965)

</comment></comment><comment><USER49> This is brilliant. Even the goold old Windows --> Run ... -> CON/CON bug seems to work.

</comment><comment><USER52> For even more fractal nostalgia, please be aware that in those days you could still run 'progman.exe' if you so desired.

Sadly this install doesn't include QBasic which was also still available on these DOS based Windows versions.

</comment><comment><AUTHOR> See also: [https://github.com/jsdf/pce](https://github.com/jsdf/pce)

</comment><comment><USER53> I won winmine on win98 in a browser.

My 14 years old me would have never believed me.

That's why I made a screenshot.

</comment><comment><USER54> Hell yeah! Now I can play jazz jackrabbit in firefox!

<comment><USER55> I wanted to play Chip's Challenge, but it's too slow on my Chromebook

</comment></comment><comment><USER56> omg finally a reasonable minesweeper emulator

<comment><USER57> :) Check the javascript replica

[https://codepen.io/joelbyrd/pen/hdHKF](https://codepen.io/joelbyrd/pen/hdHKF)

<comment><USER58> Bad imitation. Doesn't support the all-important right-mouse+left-mouse click combination.

<comment><USER59> Check out minesweeper X, it was (is?) used by the competitive minesweeper scene (yes, it was a thing).

[http://www.minesweeper.info/downloads/MinesweeperX.html](http://www.minesweeper.info/downloads/MinesweeperX.html)

</comment></comment></comment></comment><comment><USER60> I can _hear_ the sound when the hourglass appears. You know the one I mean (if you're old enough).

</comment><comment><USER61> Hypothetical question: If you where a program running in the VM how would you know if you are in one?

<comment><USER62> There's ways. Detecting whether tools like VMWare/Virtualbox are installed, whether certain drivers are installed, checking the hardware listings etc. etc.

Malware is quite a good study subject about this question. There's a lot of malware that won't run if it's in a virtual machine to avoid researchers from testing it inside one.

<comment><USER63> Do you have a reference that is runnable in this emulator? (Genuinely curious.)

<comment><USER64> [https://github.com/LordNoteworthy/al-khaser#anti- virtualizat...](https://github.com/LordNoteworthy/al-khaser#anti- virtualization--full-system-emulation)

[https://github.com/AlicanAkyol/sems](https://github.com/AlicanAkyol/sems)

(dunno if these would build/run on win98 though)

</comment></comment></comment></comment><comment><USER65> Firefox/Linux: the cursor constantly tracks to the left. You have to push the mouse to the right to keep it still.

Works in Chromium though.

<comment><USER66> Firefox 77.0.1/Ubuntu 18.04: No mouse drift for me.

</comment></comment><comment><USER67> Wow, I can't believe how smooth that is.

I've got to say, the icon for .txt files brought on some very specific hit of nostalgia.

</comment><comment><USER68> Nice. Even the old /con/con bug still works :) -edit- sorry about that, was already mentioned previously :)

</comment><comment><USER69> Tried to visit yahoo.com and IE crashed.

<comment><USER70> I think because this is a stock install and needs a network connection setup first. Mine "crashes" too but then another window loads to setup MSN

Good times!

</comment></comment><comment><USER71> Would myself in 2000 believe that I would be running Windows 98 in a mobile phone, emulated in a browser?

<comment><USER63> Given that 2000 was the time of Windows CE on the Compaq iPAQ H3100 [1] ... no, probably not :)

[1] [https://en.wikipedia.org/wiki/IPAQ](https://en.wikipedia.org/wiki/IPAQ)

</comment></comment><comment><USER72> I tried unsuccessfully to load Windows98 (via same link) in the Internet Explorer. Inception!

</comment><comment><USER73> Won't that provoke a DMCA takedown request and a subsequent lawsuit from Microsoft?

<comment><USER74> Maybe a DMCA takedown notice...

But a lawsuit? Why would Microsoft care enough to launch a lawsuit?

</comment></comment><comment><USER75> Kind of miss how... unified the design language was back then. I've resorted to making custom icons for my taskbar because ever app suit has their own clashing identity. That's after inconsistencies in Win10 intself.

</comment><comment><USER76> Boots the QNX demo disk[1]. Pretty cool! Sadly, it does not detect the emulated PCI NE2000 NIC.

[1] [http://toastytech.com/guis/qnxdemo.html](http://toastytech.com/guis/qnxdemo.html)

</comment><comment><USER77> The Hindu's got it wrong...

It's JavaScript libraries all the way down.

[https://en.wikipedia.org/wiki/Turtles_all_the_way_down](https://en.wikipedia.org/wiki/Turtles_all_the_way_down)

</comment><comment><USER78> Windows98 with the best version of Solitaire. Those were the days.

</comment><comment><USER79> This is beautiful and pure nostalgia fever.

</comment><comment><USER80> How to get a BSOD:

1\. Open Start Menu

2\. Click "Run"

3\. Type: con\con and press enter

</comment><comment><USER81> Start -> Run -> aux/aux

</comment><comment><USER82> i am still unable to understand it, do you mean you are mounting the system in browser? how do you make sense of the bin and iso file in node and how exactly an os can run using V8 engine?

</comment><comment><USER83> For the love of God, please fix the title already! (Missing a space.)

</comment><comment><USER84> IE is crashing for me whenever I try to load any site.

</comment><comment><USER85> Is it public domain now?

<comment><USER86> No, but it is no longer supported by Microsoft so it is abandonware. It is still closed source and piracy to copy without permission but Microsoft does not care about it because it is too old to sue over.

<comment><USER87> They've been known to send C&Ds to various sites that host old versions like this.

"no longer supported" is a flimsy argument for abandonware anyway. by that reasoning, Windows 7 is abandonware and it still runs basically every Windows program ever.

<comment><USER28> I think that kind of boils down to the 'spirit of the law' kinda thing.

Windows 98, conversely; _cannot_ run modern software, and the majority of software in use for the last decade - it is only going to be installed as an experiment by geeks like us, for the most part.

<comment><USER88> Arguably anything using Windows 98 is satire. :-)

<comment><USER89> For what it's worth, a Berlin court used Windows 95 (!) until Fall 2019, and I wish I were joking here. [https://www.tagesspiegel.de/berlin/experten-warnten- schon-20...](https://www.tagesspiegel.de/berlin/experten-warnten- schon-2017-it-katastrophe-am-berliner-kammergericht-kam-mit- ansage/25163810.html)

</comment></comment></comment></comment></comment></comment><comment><USER90> I like the offline-Dropbox aka My Briefcase. God I hated that app for no good reason.

</comment><comment> jose-cl sheep.exe <3

<comment><USER91> Might be of interest then - [https://www.microsoft.com/en- us/p/esheep-64bit/9mx2v0tqt6rm?...](https://www.microsoft.com/en- us/p/esheep-64bit/9mx2v0tqt6rm?activetab=pivot:overviewtab)

eSheep 64!

(I haven't tried it)

</comment></comment><comment><USER92> Amazing!

</comment><comment><USER93> This is really amazing and takes me back.

Very funny seeing it on such a small format in the top right corner.

Makes me think a "Windows 98" PWA on mobile would be super funny.

Unfortunately the windows sound wave file doesn't make any sound in the browser. I guess this is because a Soundcard or Speaker is not emulated.</comment>


Don't Touch My Code - <AUTHOR> http://blog.alwaysmovefast.com/dont-touch-my-code

<comment><USER2> I think exactly the opposite, apart from being completely unmanageable, people need to move around in most projects.

When you program keeping in mind that someone else will need to come in and change stuff without breaking it, you make sure its easy to follow, hard to break, you add comments, possibly even tests!

usually the other person is you and you will thank yourself no ends that you have made this module suitable for fresh eyes.</comment>


Private Cloud Bakeoff:  Rackspace, Terramark, BlueLock - <AUTHOR> http://www.networkworld.com/reviews/2010/040510-cloud-computing-test.html

<comment><USER2> The title given to the HN post has a typo: It's "Terremark," not "Terramark." Pretty important, given that they came first in the rankings in the article (albeit by a small margin).

As it happens, the error is common enough that Terremark is #1 when I Google "Terramark," despite the surveying company that owns Terramark.com.</comment>


Show HN: Free tickets to AngelHack until 8pm tonight with code APILove - <AUTHOR>

AngelHack is giving out free tickets to developers until 8pm tonight or until tickets run out. Use discount code 'APILove'  here. Don't miss your chance to take part in the best hackathon since Disrupt!
About Angel Hack
Founded in 2011, AngelHack's mission is to create a platform where talented individuals can form teams, receive mentorship, win prizes, and showcase their skills to the investment community. Anyone with a computer and a dream can attend an AngelHack event and have a chance to get support from accelerators. AngelHack is based in San Francisco, CA and aims to create events all over the world <comment><USER2> Clicks:

<http://angelhack.com/>

<http://angelhacksf.eventbrite.com/>

</comment><comment><AUTHOR> Go to AngelHackSF.Eventbrite.com to get your free ticket.</comment>


BFS – The Brain Fuck Scheduler by Con Kolivas - <AUTHOR> https://gitorious.org/eternity-prj/eternityvision/source/524686c237f2f85c19b2e33a5ee5ca7a7a06a74d:Documentation/scheduler/sched-BFS.txt

<comment><USER2> As I read the documentation, I thought, wow, this is probably the most complex piece of software ever attempted in Brainfuck. A task scheduler, hell, a linked list?

Half way through I quickly tried finding the source, bewildered about how it would possibly fit into a brainfuck interpreter.

Alas, for those thinking in the same vein as I, this has nothing to do with the language.

</comment><comment><USER3> I wish the patch to schedule threads in python around the gil with this had gone in.</comment>


Illinois red-light cameras have collected more than $1B from drivers since 2008 - <AUTHOR> https://www.illinoispolicy.org/reports/illinois-red-light-cameras-have-collected-more-than-1b-from-drivers-since-2008/ <comment><USER2> I think a bigger outrage is the obscene parking ticket and towing methods used in and around Chicago.

For every single street, there can be rules like:

* April - November no parking 3rd Monday of month for street cleaning

* November - April no parking any Thursday for snow removal

Then the next street over will have the same but different days of the week.

Then they will put up some signs randomly that are like no parking tomorrow! Construction! Then they tow everyone and don't do any construction. The construction gets rescheduled for next week, rinse and repeat.

Most of the time for the "snow removal" or "street cleaning" it's not done AT ALL. They just ticket or tow everyone on the block depending on how they feel that day.

It's designed for you to fail. And at $50-$90 a ticket, it's a regressive tax on the poor (like all non-progressive ticketing policies). God forbid the many multitudes of parking rules slip your mind, sorry you can't feed your kids tomorrow. Meanwhile it's not even a line item in the budget of the consultants and lawyers making $150k a year.

Meanwhile Chicago spends 40% of its budget on police.</comment>


How Hacker News could help save an innocent man from life in prison - <AUTHOR> A few months ago, I stumbled upon a Dateline NBC episode about a clean-cut Iraq-war veteran and father of four who inexplicably murdered an 18-year-old girl he had never met before. When I finished watching the show, I was confused: How did police prove he was the killer?
As far as I could tell, the only thing he was guilty of was hearing gunshots, calling for help, and then trying to assist detectives. If you have 40 minutes, google "The Girl With the Blue Mustang" and see for yourself.
I decided to start my own investigation. What I discovered is the single worst miscarriage of justice I have ever heard about in a first-world country. For the last ten years, Sergeant Ray Jennings has been serving a life sentence, even though there is gunshot-residue and DNA-testing that proves he is innocent, as well as eyewitness testimony that another, unidentified man fled the scene of the shooting while Jennings was radioing his own location to the responding officers so they could arrive as quickly as possible.
Today, I sent the District Attorney this comprehensive refutation of the State's case: http://docdro.id/Qr6auC7
I'm posting it on Hacker News because I want to crowdsource ideas for how to make the arguments even more persuasive. Which parts did you find convincing? Can you think of any arguments I should add?
Please do not post the link elsewhere, because right now a huge outcry on social media would be counterproductive. The better way to express your support is to actually send a message to Ray in his cell using Letterquick.com.
He barely ever hears from people who understand he is innocent, so it would really raise his spirits to know that a bunch of smart people are brainstorming how to free him.
His address is: Raymond Jennings Inmate ID AD0123, Block D1, Cell #222 PO Box 931 Imperial, CA. 92251 <comment><USER2> I have only read the introductory few pages so far and hope to read the rest tonight, but I just wanted to say good luck and I hope you can help correct this devastating mistake.

</comment><comment><USER3> The title is too optimistic, IIUC, he is not saved yet, he is still in prison.

<comment><AUTHOR> Well, it's an aspirational headline. I'm working on making it come true, and I appreciate whatever suggestions HN readers have for helping me reach that goal.

Would it be more accurate to say "How HN can help increase the odds of saving a guy from life in prison"? Yes, it certainly would be.

But I also think that it would decrease the odds of people paying enough attention to help me get Ray Jennings out of prison. I feel comfortable skirting the rules about headlines if that's what it takes to help reunite Ray with his kids. Because at this very moment, while you and I are free to go about our lives and pursue our interests, he is locked inside a cage like an animal.

I'm sorry if my comment comes across as standoffish. It wasn't the tone I was going for. Your point is valid, and it's one that occurred to me. I just feel like this is the one thread where there are much bigger things at stake.

<comment><USER4> >I just feel like this is the one thread where there are much bigger things at stake.

I have no objections to your cause but your current headline is, whether on purpose or not, clickbait. I clicked it because I thought it described an usual event that already happened. I would guess most did for the same reason.

You can't justify clickbait headlines with them having noble causes behind them. It's how you end up with Upworthy.

<comment><USER5> OP's position depends entirely on being regarded as trustworthy. And in the first 11 words, OP lied to us in a pre-meditated fashion.

The clickbait headline is inappropriate and makes me (and I presume many others) much less interested in spending any time on this issue after being duped.

"One weird trick to get someone out of a life sentence..."

"5 things wrong with this case; you won't believe #4!"

This one is no better. Flagged.

<comment><AUTHOR> I hear you. What we're dealing with is essentially the classic deontology versus util debate. Do we judge morality in terms of abstract principles or causal effects? You and I both know that the result of my headline isn't going to be ecoming Upworthy, but you flagged it because you, for better or worse, care about the principle more than the immediate consequence. Basically, rule- based utilitarianism.

You're right, maybe it was kind of a clickbait headline. I'm sorry you felt tricked or let down. Could you suggest a replacement you think would be fair?

I think the thing that distinguishes what I'm doing is that I'm not just asking for you to sign a petition or something. My dad and I worked for ten weeks reviewing thousands of pages of the record in order to create the document I'm sharing here, in the hopes of getting quality feedback. It's a real project that is intimately connected to the skills I use in all other hacking.

I'm trying to use those hacking skills to free an innocent man from prison. I can send you the compendium of exhibits, so you don't have to take my word about any factual assertions in the letter. I put in more than 200 footnotes cites to the record.

If you read the letter, you'll see that Ray Jennings is being wrongfully imprisoned, and has been for ten years. Please don't let my poor judgement in choosing the phrasing of the headline to stop you from looking at the evidence.

Finally, this one IS objectively better because those are tricks in the sense they don't offer something of value. There is no "weird trick" to actually transform yourself, etc. Here, you DO receive something pretty damn rare: conclusive proof a man sitting in prison is innocent.

I'm sad that matters less than the headline.

<comment><USER5> I believe you have good intent. To that end, other headlines that might better balance "grabbing attention" and "not being a lie" are:

"An innocent man is serving a life sentence."

"Imprisoned for life for a murder he didn't commit. Help bouy his spirits while he appeals."

I wish you the best and if the facts are as you believe, I way, way wish the defendant in the case to be freed. There are few things worse than being imprisoned for life for a crime you didn't commit.

The problem with a pure utility argument to support what you did is that you're stating that your cause is worthy of attention and that's what makes it different from the others. I'm sure the others would make a parallel argument that their cause (even if it's just "making money by selling ad views so my kids can eat and have shelter") is also worthy, because the test merely requires the author of the headline to judge whether it's worthy of attention. You genuinely believe, but you're hardly an unbiased judge.

That very quickly escalates to a tragedy of the commons where no one can rise above the cacophony of clickbait screams. Instead, I go by the community guidelines, which include two relevant ones:

"Please don't do things to make titles stand out, like using uppercase or exclamation points, or adding a parenthetical remark saying how great an article is. It's implicit in submitting something that you think it's important."

"please use the original title, unless it is misleading or linkbait."</comment></comment></comment></comment></comment></comment>


Where grep came from [video] - <AUTHOR> https://www.youtube.com/watch?v=NTfOnGZUZDk <comment><USER2> Kernighan is so nice to listen to compared to some of the the hot air balloons in software today. I use awk everywhere (and have for many years) and am deeply indebted to BK and AR for their work on and custody of that language.

<comment><USER3> AR = Arnold Robbins, [http://www.skeeve.com/](http://www.skeeve.com/)

</comment></comment><comment><USER4> I hope these videos will live on for many years to come. Absolutely amazing and rich oral history of many things we take for granted in our daily lives.

<comment><USER5> >many things we take for granted in our daily lives.

The entitlement we live in nowadays vis à vis technology continues to blow my mind, from some condescending attitudes towards free software that forms the building block of a myriad of products to the "disappointment" some consumers express when a new released chip isn't twice as fast as the old iteration. There's a lot going on behind the scene and even by saying so I am underestimating just how much our civilisation has put in effort into the things that we use on a daily basis and pay to attention to.

<comment><USER6> This is why I get mad when people piss on RMS. No need to dwell on his defects, he has served our community immeasurably.

<comment><USER7> If you're talking about people making fun of his weight or appearance or other strange behaviors, then I agree.

But RMS didn't descend from Mount Sinai with the Four Freedoms carved into stone by the finger of God or anything. He's just a man with an opinion, and his ideas are not above criticism regardless of what he's done for the community.

<comment><USER8> No. But he did live in a community of sharing that was destroyed by proprietary software and he has spent 45 years developing free software. So many should pay his ideas more respect than they do because they like to make it about his person life.

<comment><USER6> Wholeheartedly agree!

This entire thing we have going wouldn't be possible without the GNU project. And GNU would never have happened without RMS. The man is a giant. A giant with huge glaring flaws, but every single one of us that did anything with unix-like OSes in the past 30 years owes the man.

Sadly I fear that much like Peirce, Stallman will be forgotten by history because of the acumen of his primary detractors.

<comment> ezequiel-garzon Wouldn't the BSDs have happened sooner or later without GNU, and without Linus? I'm grateful for the contributions of both men (who by the way have expressed quite different ideological stances), but I still think it's an interesting question.

Edit: grammar.

<comment><USER8> Maybe yes. But BSD was encumbered by the AT&T nonsense for approximately a third of the free software community's history. That's a long time to sit around and do nothing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Great remark at the end: "they had one great disadvantage: none of them were Ken Thompson"

Aside from retrocomputing is there any actual use for ed in this day and age though? [https://sanctum.geek.nz/arabesque/actually-using- ed/](https://sanctum.geek.nz/arabesque/actually-using-ed/)

<comment><USER10> In a sense, yes. 'sed' is basically 'ed' for streams. Not exactly the same syntax & commands, but very very close.

</comment></comment><comment><USER11> Wait, that's Brian Kernighan?

The K in K&R C Programming???

Mind blown, what an excellent dude!

<comment><USER12> He actually has a lot of really awesome oral history/lecture videos on that same channel. He's an incredible "casual oral history" storyteller.

</comment></comment><comment><USER13> If ed looked familiar is because you use a derivative of it in vim, in ex- mode. You can also run ex standalone, which is great to automate file changes.

[https://en.wikipedia.org/wiki/Ex_(text_editor)](https://en.wikipedia.org/wiki/Ex_\(text_editor\))

<comment><USER14> It looks familiar to me because I wrote a tutorial for it for Coherent and used it for many years before David Conroy wrote MicroEmacs.

vim, not so much.

<comment><USER15> Well, if you went down the emacs path in 1985 when MicroEmacs was released (near as I can tell anyway), that was six years before vim was released, so I think you meant to say "vi," not "vim."

Some of us still use plain old vi and not vim, which is why I'm a little touchy about it, I guess. (I mean, what do you need with all those damn plugins, anyway? Might as well use emacs in that case.)

<comment><USER13> I moved from vi and vi clones to vim for its Unicode support, but then started learning all its more advanced operations and have been enjoying them since then.

</comment></comment></comment></comment><comment><USER16> I wonder how his students did at the assignment he mentioned at the end :)

<comment><USER17> I can only imagine the learning opportunities just from comparing their results with the real grep. The original being built on an 8-bit 32kb RAM nothing little environment is not something many people are naturally inclined to optimize for anymore. And for people to even implement any kind of non- trivial spec, in this case presented as another working application, I imagine every result was different, and incompatible.

<comment><USER18> > _The original being built on an 8-bit 32kb RAM_

Actually, the PDP/11 was a 16-bit machine.

</comment></comment></comment><comment><USER19> Such an excellent story teller!

<comment><USER20> I love his videos on Computerphile! Incredible source of hardcore computing knowledge.

</comment></comment><comment><USER21> The small step from ed to regular expressions seems like a giant leap in sophistication to me.

<comment><USER22> Well Ken Thompson didn't actually invent the idea of regular expressions, but he was probably one of the first people to implement them in software. Regular languages and expressions were first formalized in 1951 by Stephen Kleene and I assume Ken Thompson used this research to implement them.

</comment></comment><comment><USER23> I was most excited to learn that ed(1) is pronounced "eee dee".

<comment><USER24> ... by literally four people.

<comment><USER25> ... who literally created it.

<comment><USER26> ... please repeat after me: gif.

<comment><USER8> I generally go with "GIF with a soft G is the format, GIF with a hard G is the culture."

<comment><USER27> Everyone involved in the creation of GIF and CompuShow pronounce it as "jif". Anything else is sacrelige.

<comment><USER28> CompuServe.

<comment><USER27> CompuShow was the DOS GIF viewer.

<comment><USER28> D'oh. Thanks.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> I had no idea grep was made over night! Thoroughly enjoyed the video and subbed to the YouTube channel. Thanks for sharing!

<comment><USER30> Extracted from working code overnight, which in those days on that equipment was still quite an accomplishment.

</comment></comment><comment><USER31> [https://youtu.be/NTfOnGZUZDk?t=505](https://youtu.be/NTfOnGZUZDk?t=505) to jump to it and did you notice... is he wearing a Casio watch from that same time period?

</comment><comment><USER32> I went down the rabbit hole hard on this YouTube channel, great content.

</comment><comment><USER33> Kernighan saved the most interesting fact for his last comment: both grep and ed were written in assembly, not C!

<comment><USER12> I actually didn't know that either! I wonder if grep & ed actually predate C...It's also very possible that K&R might have thought about C as a toy or novelty at the time.

</comment></comment><comment><USER34> I named my whole company after grep: grepwords.com and I had never knew this... cool history to learn

</comment><comment><USER35> tl;dr The idea for grep, like sed, began in the mind of Lee McMahon. The program grep was implemented by Thompson. I recall reading that the program sed was first implemented by Ritchie, and later McMahon himself. Is this correct?

</comment><comment><USER36> I watched this video today and here it is on Hacker News. What a coincidence.</comment>


404 Page Not Found - <AUTHOR> https://thebaffler.com/salvos/404-page-not-found-wagner <comment><USER2> I agree broadly and admire in particular the author's application of Frederic Jameson, but feel I must speak in favour of the Facebook groups function, which, yes, even though it exists on Facebook, seems to have allowed all kinds of weird communities to spring up in a way they might not have otherwise. Like the group "famtastic lomgbois amd where to fimd them", which is dedicated to long things, and where 'n' is considered a banned glyph because it is short, and 'm' is long (or as the members would say, LOMG). [Edit: what I mean is that it's not all groups mocking boomers or digital nonnatives. The infamous NUMTOTS is another example of a vibrant fb-only community, and it has a whole series of spinoff groups for different subjects].

Regarding platforms in general, lately I have caught myself thinking of these platforms (FB and the gram in particular) as essentially shopping malls: fine if you follow the rules, maybe some pretty things to look at, but a bit boring. Everybody knows it's more fun to do stuff in the mall that you aren't really supposed to do, and those are usually the most interesting uses of these platforms from an analytical standpoint. Like the person who has obsessively collected all the leaked songs from a rapper's upcoming album, scraping them off YouTube, then circumvented copyright strikes by hosting them on Spotify as a "podcast", each 'episode' a song. Then no one who wants to hear those leaks has to dig around for MP3s or sift through youtube uploads that are often mislabelled as new releases so that the uploader can try to increase views. The "podcast" gets taken down every week or so, but always pops up again.

More "interesting" uses of these platforms: Groups dedicated to tracking the locations of police DUI checkpoints, people selling drugs through Snapchat, etc. Air traffic controller meme groups. People find previously unimagined uses for even the most boring and soulsucky platforms.

<comment><USER3> _but feel I must speak in favour of the Facebook groups function, which, yes, even though it exists on Facebook, seems to have allowed all kinds of weird communities to spring up in a way they might not have otherwise._

But they probably would have. If not on newsgroups or mailing lists or webrings or forums, then on a hypothetical, less malicious social media platform. Somewhere where the data could be preserved, sorted, filtered, and indexed by search engines.

That there is interesting information on Facebook is an argument against it, not for it, because Facebook is a prison for data and all its prisoners will eventually be executed when the warden deems them no longer worthy of life.

<comment><USER2> >If not on newsgroups or mailing lists or webrings or forums, then on a hypothetical, less malicious social media platform.

this is the dream, of course. I totally agree. I suppose what I was trying to express was that I think the specific boring ubiquity of FB is what caused these groups to grow and flourish. I can imagine an urbanism group growing on a phpbb board or community of blogs and eventually getting high-traffic and powerful, with its own set of memes etc, but the hyperniche-ing of groups (the lomgboi example) seems to be a feature of FB groups because it isn't something most people would bother to take part in if it weren't already there, in the mall. FWIW i consider reddit part of the mall too, because apart from the weirdo small subreddits I find it alienating in a community sense, since I literally grew up on phpbb boards with avatars and threads, where you were able to recognise and come to know certain regular posters within a week or two.

</comment></comment></comment><comment><USER4> Stopped reading this article at the second popover. Why are so many web authors so willing to compromise their writing with this nonsense?

<comment><USER5> I only got the one popover (which browser are you using?) and there are plenty of sites with worse dark patterns.

<comment><USER6> > there are plenty of sites with worse dark patterns

Great argument...

</comment></comment></comment><comment><USER7> I also long for the ugly web (for the lack of a better term), and think about it a lot. I often wonder how much of my ego and/or attachment for being an individual is the foundation of this sentiment.

As a developer, I even see this echoing through the tech evolution of web development (inaccessible SPAs which take 4 seconds to load and where you can't effectively use tabs, a sea of popovers and overlays, etc.).

Surely, there will be niche places where this ideology remains (and those communities will become stronger, as a result), but maybe the fact that the ugly web is no longer the only web makes us early internet pioneers feel less special.

</comment><comment><USER8> Reading this made me feel really old.

>I'm a digital native, older than most.

>The first time I can remember logging on to the net was around 1998, when I was five years old.

>the rise of Facebook in early high school, Instagram in late high school

I'd also consider myself a Digital Native, however I'm in my 30's.

<comment><USER9> I find it amusing that the author wrote an article about how they miss the internet of the 90s while at the same time acknowledging that they were 5 in 1998...

<comment><USER10> Coming here literally to talk about this.

The youthfulness of the article is adorable albeit a little naieve.

Maybe we are getting old. I still feel like a kid and there are many greybeards that were born of the digital revolution that are "older than most."

<comment><USER11> It is funny how people think the Internet started in 1995. I was using the Arpanet for email in 1980. And my colleagues had been using it for several years at that time.

</comment></comment></comment></comment><comment><USER12> I wonder whether this article will be indexed by search engines.

<comment><USER13> I has open graph metadata, works with cURL and is WordPress based. Why wouldn't it be indexed?

</comment></comment><comment><USER14> Internet culture is always changing. A devoted core of people is doing something cool, new people come in who are just there for the scene, finally (in the cases discussed in the article) business interests co-opt it and it becomes sterile. This is described in the article geeks, mops, and sociopaths, if you're interested.

I liken fb to reality TV. Everyone can be a star. Like Warhol said.

Twitter is pushing some weird buttons. I think it attracts narcissists, and gets people hooked-up on their own chemistry. I've always had a really low opinion of twitter users.

Missing old shit is death. Just start making the things you care about or are interested in.

</comment><comment><USER15> It would have been more interesting without the constant injection of the author's political opinion: capitalism bad, Marxism good, neoliberalism bad (not to mention the gratuitous reference to the orange man)

<comment><USER16> Making things sterile doesn't make them more interesting.

<comment><USER17> Nor does embedding immature political statements in them though...</comment></comment></comment>


The Store for Business and Industry - <AUTHOR> http://www.amazonsupply.com/ <comment><USER2> > It's a giant market

True, much larger than B2C. But there's a reason why B2C is more attractive and the reason is monopolistic. As the article notes, there isn't a clear monopoly or substantial leader in the B2B supply space - a result of the market being so huge and fragmented.

What makes markets attractive is their size and potential to establish monopoly - which Amazon has achieved in the western world in B2C ecommerce.

It will be interesting to see how they get on with AmazonSupply, it's a market they can gain leadership in for sure when you consider the products are commodities and it's mainly a logistics problem (they already accel in this regard obviously)

</comment><comment><AUTHOR> It's a giant market, as they hint at in the careers section: "our goal is to supply everything needed to rebuild civilization." They're far from done with their growth.</comment>


Show HN: High-performance ahead-of-time compiler for Machine Learning - andrew-wja https://www.scss.tcd.ie/~andersan/projects/live/triNNity.html <comment><AUTHOR> A few minor notes:

1\. This seems to be oriented to convolutions. While convolution is rather important for image-oriented DNN workloads, there is DNN beyond that, and DNN are not the only technique for machine learning.

2\. The graph shows 2-3x speedup (of convolutions, I suppose) over Intel's MKL-DNN 0.17 on the __i5-2500K __processor, which is a rather old low-end device. If the format used for convolutions in the test used 8-bit integers for storing image channels (which is possible) this is to be expected, since i5-2500 does __not __suport AVX-512 integer instructions that are employed there by MKL-DNN. It does not even have AVX-2! If that 's the case, just switching to 32-bit float could speed up MKL-DNN almost an order of magnitude. The most informative test would be something run on SkylakeX, since it does support AVX-512...

<comment> andrew-wja The speedup is for the __whole __network, as the graph labels show! The point of the compiler is that you produce code that implements the __entire __forward pass so you can deploy that code where you need to do the inference.

I agree we need AVX-512 -- hopefully I can get access to a SkylakeX machine in the next few days.

<comment><USER2> Even with AVX512, CPUs are going to be pretty slow for most networks of decent size. Is the purpose to easily embed small models into other code?

<comment> andrew-wja Yes, that's a big part of it. Also, if you want to do something like (for example) keyword spotting in audio on a small device, like a Cortex-M class processor, the constraints are really really difficult to satisfy: most of them have significantly less than 1MB of main memory, for a start! Like this guy, for example: [https://openmv.io/products/openmv- cam-m7](https://openmv.io/products/openmv-cam-m7) \-- 512KB of RAM, and it runs at 216MHz. You just can't run tensorflow on something like that; it takes real effort to produce something that can do inference in that context.

With that said, the techniques we've developed here are totally applicable to GPUs as well, and you might even expect that something like algorithmic choice would have an even bigger effect there, if we're just talking about delta- execution-time, but that's future work for us!

<comment><USER2> Thanks for the response! With respect to the GPU, this reminds me of Tensor Comprehensions. Do you see a fundamental advantage to your approach over their kernel evolution protocol?

<comment> andrew-wja Thanks for the question, this really gets to the heart of the issue!

We do see a fundamental advantage, and I'll try to explain what it is.

So TC's kernel evolution is based on autotuning, and what they are autotuning for is the parameters for a specific implementation strategy for convolution (what we would call a convolution algorithm).

There are two conceptual problems with this. The first is that you're constrained by what's written in the algorithm. So for example, you cannot take a direct convolution algorithm and hope the compiler will optimize it into a Winograd convolution. You can only move around within the algorithmic domain. Introducing algorithmic choice is a big conceptual difference.

The second is that we know that this is a problem that can be solved optimally. The autotuner can never tell you if what you have found is the best way of arranging the network, it can only tell you that what you have is the best candidate it's seen so far. But using a real optimization formulation, what comes out is a proof by construction that _no better arrangement exists_.

The obvious downside is just that the optimization might take longer to run than the autotuning, but what we observe in practice is that it takes the PBQP solver a few _seconds_ to derive the solution from the microbenchmarked cost model, and the cost model takes a few minutes to build for most popular ImageNet networks (VGG-D, MobileNet, SqueezeNet, etc.)

Where the TC approach comes in is at the "leaves" of the problem. When you have the optimal algorithmic selection, _then_ you can try to wiggle around trying to find the best way to map that to the hardware, and you might expect percentage return on investment. But the higher-level algorithmic selection gives you _factors_ return on investment.

</comment></comment></comment></comment></comment></comment><comment><USER3> Ok, my first reaction is that this is that it's really wonderful work - straightforward and with a big payoff at the end.

But this really begs the question: why hasn't this been done before? People have been throwing resources at machine learning for a decade now, and somehow nobody has thought to perform instruction selection before executing a model to optimize the kernels used?

What other low-hanging fruit is out there? Automatic partitioning of networks over several GPUs and CPUs? Such dynamic load balancing algorithms have been available in the HPC literature since there was HPC literature. Fusing multiple primitives to simpler kernels? That's what linear algebra libraries have been doing for decades. Optimizing internal data layout (although that seems to be part of this paper)? Optimizing scheduling decisions to minimize data movement?

\---

Also since the author seems to be reading this thread: Have you tried measuring the tree-width of the instruction selection DAGs you generate for the PBQP problem? The heuristics for solving these problems in llvm are applicable to tree-width <= 2, but could be extended to, e.g., tree-width <= 4 without too much slowdown. I wonder if there is still an iota of performance to be gained here. :)

<comment> andrew-wja Hi, author here. There is a staggering amount of low hanging fruit. I have been half-seriously blaming GEMM in correspondence. When you have a problem that looks like GEMM, it's such an attractive hammer to pick up that people just don't look beyond it to other techniques!

To answer your other questions: we already have auto load balancing and primitive fusion, albeit rudimentary, but optimizing scheduling is the obvious next step. We've extended this stuff to use ILP, and we're on our way to press at the moment!

Re: tree width: the tree widths are huge, but the solver library we're using handles them :)

<comment><USER4> how tied are the compiler aspects to the specific kernels (eg for convolutional layers)? Could load balancing and fusion logic be broken out into a library which could work for user defined kernels?

<comment> andrew-wja They aren't tied at all -- in fact the optimizer is a totally separate project (triNNity-optimizer) that just does graph optimization. You can add user defined kernels as long as you have some way of microbenchmarking them!

</comment></comment></comment></comment><comment><USER5> 'ML' is really confusing nowadays. Especially with such words as 'compiler' and 'optimizer'.

[https://en.wikipedia.org/wiki/ML_(programming_language)](https://en.wikipedia.org/wiki/ML_\(programming_language\))

<comment> andrew-wja Fair! Edited.

</comment></comment><comment> andrew-wja If anyone would like to know more about the toolkit, I'll be checking the comment thread here periodically today!

<comment><USER6> Might want to change ML to Machine Learning. I thought it was about a compiler for ML, the programming language ([https://en.wikipedia.org/wiki/ML_(programming_language)](https://en.wikipedia.org/wiki/ML_\(programming_language\))).

<comment> andrew-wja Updated to clarify. Part of the toolkit is written in Haskell, I really oughta know better!

</comment></comment></comment><comment> andrew-wja I should mention that we have made Arch Linux packages for all this stuff: trinnity-git and trinnity-optimizer-git

(you can just git clone the compiler and the demos to get started).

We'd love people to start using and breaking this stuff so we can find the pain points and improve things!

</comment><comment><USER7> Is there any plan to make this compile to cuda? I can't imagine bothering with DNNs on an intel cpu in virtually any situation, even if it is 3x faster this way.

<comment><USER8> Agree and compile to Opencl?

<comment> andrew-wja Yes, both! We also are working on ARM Compute and cuDNN backends. Soon :)

</comment></comment></comment><comment><USER9> How does this approach compare to Tensor Comprehensions, or TF XLA, or whatever are the best DNN compilers these days?

<comment> andrew-wja Full disclosure: I'm a compiler person who for funding reasons moved into performance of machine learning systems.

None of those things should be called compilers. At best, they are scaffolding for peephole optimization. When you can get these crazy speedups just from bolting on an instruction selector, that's a real indicator that a lot of stuff is just waiting to be done.

For context, MKL-DNN embeds XBYAK, an optimizing JIT targeting SSE4.2, AVX2, and AVX512. It sees all the dimensions of the tensors, it knows the strides of the kernel, and so on and so forth. So for us to be able to beat it by such a margin just by stepping back and doing something simple at a higher level of abstraction kinda indicates that the approach it's using is running up against some conceptual limits. It's not that MKL-DNN's JIT isn't good -- it's great, and it's a credit to the engineers working on it. But the problem is that the smarts are being applied in the wrong place!

<comment><USER9> How does it compare with what CuDNN auto-tuner does for GPUs?

<comment> andrew-wja cuDNN's autotuner is only making _local_ decisions; If layer X is connected to layer Y is connected to layer Z, simply choosing the fastest algorithm to implement each layer does not guarantee optimality. That's because the different convolution algorithms work best using different data layouts. For example, winograd convolution is usually fastest using NHWC layout, while patch-matrix based approaches like im2col are usually fastest using NCHW layouts.

When two connected layers disagree about the tensor layout, you have to do a data layout transformation, which is expensive. The key to the performance we're getting is that we benchmark those data layout transformations, and we make a _global_ decision about the network, where the optimizer is aware that the cost for selecting algorithms for connected layers is the total cost of algo A + layout transform + algo B, not just the cost of algo A + algo B.

So in a nutshell, the optimizer is making use of global information, while the autotuner is only using local information. If you have a squint at our paper, we actually model what the autotuner is doing; that's the "local optimal" bar on the graphs. We always beat it!

<comment><USER9> I see. So what do you intend it to become? Are you building a middleware to be inserted between, say, PyTorch and cuDNN? I'm training convnets and rnns written in PyTorch and TF on GPUs, how can I benefit from your work?

<comment> andrew-wja You're essentially correct, but there is a bit of a problem with PyTorch and TF specifically, because you don't really have a definition of the model per se. You construct it dynamically using a Python or C++ program.

The Caffe .prototxt format or the ONNX model format are nice declarative specifications for what the model is supposed to do; so those are good input formats for the compiler. I hope more frameworks will prioritize ONNX, because it's really the wild west out here with every framework reinventing the wheel for model specification!

</comment></comment></comment></comment></comment></comment><comment><USER8> Amazing work. What changes are needed in this library to make it benchmark GPUs ?

<comment> andrew-wja No changes are required in the library -- you just need to have some way of generating the code for the forward pass using e.g. cuDNN (which already has a heuristic selector!)

<comment> andrew-wja In the compiler we need to add backends to cuDNN and probably some OpenCL DNN framework -- this is already fairly high on our list of priorities.

<comment><USER8> I am really not able to connect the dots here. Bear with me for my ignorance since I am from OS/drivers background and not a compiler guy.

Can I compile code at below link with nvcc(Nvidia compiler) - [https://bitbucket.org/STG- TCD/trinnity/src/b33c94e1fabd18f83...](https://bitbucket.org/STG- TCD/trinnity/src/b33c94e1fabd18f83c8cdd70475bf50e2ade6298/include/dense/cuda/?at=master)

If I write gemm.cl like above program implementing a bunch of CNN primitives, why I cannot compile it with gcc.

For compiling any Opencl program, I need to write kernel in suppose sample.cl file and compile it with gcc –Wall sample.cl –o sample -lOpenCL

This -lOpenCL picks up libopencl.so file from my Hardware vendor(Qcom, Intel) and generates the binary which runs it on GPU(or whereever Opencl is available)

Why do I need anything trinity compiler and optimizer.

<comment> andrew-wja The short answer is that there are dozens of ways to _use_ that GEMM to do convolution (convolution algorithms), and there are NUM_ALGORITHMS * NUM_LAYERS way to implement the network.

Our toolkit figures out which of those arrangements are the fast ones!</comment></comment></comment></comment></comment>


Why the Myers-Briggs test is totally meaningless - mkr-hn http://www.vox.com/2014/7/15/5881947/myers-briggs-personality-test-meaningless

<comment> mkr-hn From the article:

> _If private companies want to throw their money away on the Myers-Briggs, > that 's their prerogative. But about 200 federal agencies reportedly waste > money on the test too, including the State Department and the CIA. The > military in particular relies heavily on the Myers-Briggs in deciding on > promotions, and the EPA has given it to about a quarter of its 17,000 > employees._</comment>


Show HN: Sidepyter, the missing sidebar for Ipython Notebook - <AUTHOR> https://github.com/ipython-contrib/IPython-notebook-extensions/issues/532 <comment><AUTHOR> Hi, I'm developing a new sidebar extension for the Ipython Notebook. If you write long docs with .ipynb, you may try it as well.

It's not ready yet, but I want to see your feedback. And if anyone could join me would be great, I'm not very good at programming.</comment>


In Washington state? Nominate yourself for a WTIA Industry Achievement Award - <AUTHOR> http://www.washingtontechnology.org/community/forums/thread/360.aspx <comment><USER2> It's $180 to apply.

Even beyond the large amount of money, the fact that they're asking for money from applicants (read: potential award recipients) undermines the credibility/prestige of the award.</comment>


Brexit causes over 75% investors to lose money in June - <AUTHOR> https://insights.openfolio.com/brexit-causes-over-75-investors-to-lose-money-in-june-e74c130fa4d4#.xr9345q4b <comment><USER3> Except for those investors who bought uvxy puts baby!!

<comment><USER4> Why the massive spike towards the end of 2013?

<comment><USER3> Basically the fed announced it was going to stop printing as much money as it had been, thereby reducing liquidity in the market. People got scared and there was a big sell off. UVXY is a measure of volatility in the market - <USER2> when people get scared, it spikes up.</comment></comment></comment>


I used ML to find public domain Krazy Kat comics in newspaper archives - <AUTHOR> https://joel.franusic.com/krazy_kat/about/ <comment><USER3> This is honestly one of the best uses of ML I've read about. A large amount of boring work that isn't easily handled by a descriptive model.

<comment><AUTHOR> And, what's more, it was _easy_ \- I hope that people are inspired to take ML further than I did, there's a lot of cool things waiting to be re-discovered in newspaper archives.

</comment></comment><comment><USER4> I'm tempted to repeat this for the Little Nemo in Slumberland comic strip [1] that ran in the early 1900's. Like the Krazy Kat comics, the Fantagraphics collections of the strips are long out of print and expensive when found usd.

[1] [https://en.wikipedia.org/wiki/Little_Nemo](https://en.wikipedia.org/wiki/Little_Nemo)

<comment><USER5> The Fantagraphics collections of Nemo are nothing compared to the Sunday press collections - two amazing books the size of a newspaper broadsheet, with full- size, lovingly-restored art. They were both $100 new and prices have only gone up.

</comment></comment><comment><USER6> I'm shocked how out of hand the price went for advanced auto ml for such a tiny dataset.

I can't imagine the ridiculous costs if one were to train on tens of thousands high- or even mid-res images!

</comment><comment><USER7> Made an account just to say your work is Awesome. As i read the title, thought to myself "AI goes boink" Glad to see ai programs beings used in novel ways.

P.S: thanks for all the comic. Cheers :)

</comment><comment><USER8> Wonder why he didn't use the Core ML image analysis tools built in to Xcode?

<comment><AUTHOR> ... I didn't know that they existed? I just ran with the first thing I could get working.

</comment></comment><comment><USER9> Uh, why don't you publish your own $600 book now?

<comment><USER5> None of these books would have been $600 when new, and IMHO none of them are _worth_ that (and I am a comics nerd who has spent a few thousand dollars on reprints of old comics over the course of her lifetime, including the Kat). I doubt any of the bots listing these collections on Amazon for $600 even actually have a copy available to sell; there is a bunch of _weird shit_ that happens with the prices of stuff that's out of print nowadays.

There is also a good bit of distance between "I have a bunch of scans of Krazy Kat" and "I have a file ready to send to a book printer to turn into a bunch of books of Krazy Kat". Scans need to be cleaned up, grey halftones need to be dealt with (terrible things happen to them when you scan them), and multiple sources ideally need to be checked to find the best possible copy - <USER2> instance, compare these two images of the same strip, one from HeritageAuctions.com and one from newspapers.com:

[https://d2tsqpgsubhmz2.cloudfront.net/1919-02-02-comics.ha.c...](https://d2tsqpgsubhmz2.cloudfront.net/1919-02-02-comics.ha.com-17113-17707.jpg)

[https://d2tsqpgsubhmz2.cloudfront.net/1919-02-02-newspapers....](https://d2tsqpgsubhmz2.cloudfront.net/1919-02-02-newspapers.com-457807708.jpg)

zoom in, look around; one is Herriman's original, with a stain it's acquired somewhere in the century that's passed since he drew it, and a scribble of non-photo blue pencil indicating an area filled with grey halftone when it ran in the paper; one is a scan of a ragged piece of newsprint, with a halftone that's closed up a lot in the printing and scanning process. Neither of these is quite what you'd want to put in a book.

I suppose one could apply more ML to automatically try to clean up all of these diverse scans into something worth putting into a book, but I feel there is a _huge_ can of worms being opened up there.

<comment><AUTHOR> > There is also a good bit of distance between "I have a bunch of scans of > Krazy Kat" and "I have a file ready to send to a book printer to turn into a > bunch of books of Krazy Kat".

I assumed as much myself. However, based on the comics that I spot checked in my Fantagraphics hard copies, I'm no longer sure that is the case?

In particular, I'm really curious how Fantagraphics missed the comic published in 1922-10-29. (See the section titled "Figuring out dates for comics" in my write up for details)

> I suppose one could apply more ML to automatically try to clean up all of > these diverse scans into something worth putting into a book, but I feel > there is a huge can of worms being opened up there.

I, for one, hope that someone opens that can of worms!

<comment><USER5> Have they been scraping the bottom of the barrel and reprinting stuff they can only find shitty scans of lately? I haven't been getting their recent volumes, I kinda feel like I have all the Krazy Kat I need in my life right now.

I'm just gonna assume a humorous accident involving craft beer and flannel shirts for the one missing strip. :)</comment></comment></comment></comment>


Don't bother with Swift for iOS development - <AUTHOR> http://www.1bytebeta.com/dont-bother-with-swift-for-ios-development/ <comment><USER2> Judging by the title, I figured we were in for a screed by an Obj-C holdout, but _JavaScript?_ You want us to use _JavaScript_ for iOS development?

Did you forget the period in time where Steve Jobs was making that argument and even _he_ got BTFO?

<comment><USER3> I think you missed a critical part of the article, where he quotes the creator of WordPress as saying that PHP will just be used to communicate with the db, with javascript doing the UI work (I'm paraphrasing a little).

I think that's what he's getting at. That writing your whole solution in Swift or Obj-C doesn't make sense, because then you need to write a whole new solution in Java for Android. Why not have the common components in Javascript, with the specifics in the platform specific lanaguage?

<comment><USER4> Meanwhile Wordpress has failed so completely to establish itself on mobile (e.g. SDKs developers can use to make their Wordpress content present in their apps) that whole startups like Contentful ( [https://www.contentful.com](https://www.contentful.com) ) are springing up to fill the gap

</comment></comment></comment><comment><USER5> > Don't we have enough programming languages already?

After this statement you've lost me. This is like saying: "Don't we have enough new models of car already? Why develop new ones? My car gets 25 miles per gallon!" As if new problems never crop-up or new, better approaches never develop.

<comment><AUTHOR> Sorry, I guess I should have written "enough programming languages to use for iOS development." Other than Obj-C you can compile iOS applications with virtually any other programming language.

</comment></comment><comment><USER6> The author has clearly never worked on a non-trivial mobile project. Today, more so than ever, the two mobile platforms differ so drastically in APIs, user experience and design that anyone seriously considering writing mobile apps will have to do so using two different code bases if they want to have a remotely usable app.

Portable frameworks might have a place where you target extremely simple like forms based stuff. But even then I would personally never deliver something like that to customers. I guess we all have different standards when it comes to quality.

"A revamp of the language is already in the works". Of Javascript? Haha, that is hilarious. Progress on ECMAScript has been a such boondogle in regards to politics, glacial adoption rate of new features and other general fuck ups that we will unlikely see something even close to a modern language in our lifetimes. But, you know Linux on the desktop will take over the world anytime now, won't it?

</comment><comment><USER7> This isn't an argument against Swift for iOS development. Its an argument against native application development.

</comment><comment><USER8> > but surprisingly enough, _most newbies_ still prefer to learn Swift and > focus on iOS [...]

This is quite condescending. I think there are merits to both choices: going deeper with a native language exploiting all the intricacies of a platform or going wider with an universal language such as JS. What you ultimately choose as technology may depend on various factors there is no clear cut.

</comment><comment><USER9> I can't take anyone who promote JavaScript over any real programming language seriously.

first, people build transpiler so that they can build and maintain large codebase without losing sanity.

Then you have react that come with this great idea, immutability, so that they can have saner codebase.

Much of what happen is due to the language deficiency. Which is why some would have gone and consider language like Go.

<comment><USER10> But you are talking about swift here - net yet a 'real' programming language per se ... But specifically in comparison with JavaScript? on an admittedly superficial review of swift it looks quite similar to JS. so what's with the 'real'? Is it the maturity of the language? The base of developers who already use it? It's yajs with access to the ios APIs.

</comment></comment><comment><USER11> I actually think we're at the point where it's an irresponsible business decision to build an iOS app in Swift over Javascript in most cases. React Native can target both iOS + Android with a much better development workflow than Swift can offer.

Why on earth would you want to use Swift when it's harder and more time consuming to implement, takes longer to learn, has worse library support, is harder to hire for, and only targets one platform? Apple really dropped the ball with Swift.

I suppose that "performance mandates it" is a valid reason for wanting to use Swift. But I think for 95% of apps Swift is the wrong technology choice.

<comment><USER12> None of what you wrote is remotely true, except for the "targets one platform" remark. Swift is very much superior to JavaScript, has better safety and expressiveness, far fewer gotchas, and has vastly better library support on iOS (how do you do Metal or AVFoundation in JS?) An ObjC developer will master Swift much more quickly than a web programmer will master React Native, which also requires understanding UIKit, so there is no hiring benefit.

Yes, React Native is a path to cross platform, but high quality cross platform apps need OS-specific interfaces anyways. So what do you save?

</comment></comment><comment><USER13> Did you hear about Phonegap, Titanium and all the write once, ship multiple times frameworks? They are here for some time.

It's a hard to solve problem. Facebook was once doing a webapp for mobile and it had an average of 1 star in the app store. Now hopefully they learned their lesson and reiterating on an approach. Still it doesn't mean they'll get it.

There's also game development with Metal, how are you supposed to use javascript for high quality rendering.

Swift will be needed and at the very least as a host for your javascript app. And swift is a no brainer improvement over objective c. It's safer and modern.

<comment><AUTHOR> Thanks for your comment :)

I agree, there are many other frameworks I should have mentioned. As for high quality rendering with Javascript --> WebGL?

</comment></comment><comment><USER14> Right now the best apps are still by far created with native code. The HTML champions have said for 5+ years that HTML is the future but we are not even close. Given that, I think it is safe to assume that the next 2-4 years native code will still win.

<comment><USER15> Who said anything about HTML? One can use Javascript on iOS without using HTML.

</comment></comment><comment><USER16> > Don't we have enough programming languages already?

Completely disagree! We can never have enough languages! I'm excited about the new languages to come, that will re-use the best ideas of the existing languages and come up with new, helpful things.

Kind of disappointed with the article. Just because one language (in this case JavaScript) is occupying the space and is "better" than another, doesn't mean that the other language is irrelevant.

But then again I neither program with Swift or ObjectiveC. Or targeting iOS at al so I might be completely wrong...

</comment><comment><USER17> > I've decided to wait and see how it evolves ... After more than a year, I > still can't see the value in it.

You can't judge programming languages/efficiency/maintainability by observing from the fence. I just completed the first Swift project. It's fun and easy to work with. Not leaving Swift for JS (or Obj-C), anytime soon.

</comment><comment><USER18> This can be summarized as "Just use JavaScript because the web uses it", which I think is silly.

</comment><comment><USER19> The only people that think Javascript is appropriate for native development, are frankly, people whose only experience with mobile is writing trivial apps. This was true five years ago and is still true today. The second you need to do anything complex, you'll find yourself doing a lot of bridging back to native code anyways.

And now you have two problems....</comment>


Time to regulate Bitcoin, says UK Treasury report - <AUTHOR> https://www.theguardian.com/technology/2018/sep/19/time-to-regulate-bitcoin-says-treasury-committee-report <comment><USER2> Isn't the whole point of BTC and crypto in general is that it's NOT regulated?</comment>


Stop / Start / Continue Question Set - <AUTHOR> https://medium.com/@rekommend_io/stop-start-continue-question-set-240397d3df01#.sryvk83pz <comment><AUTHOR> What should Hacker News stop / start / continue doing?

Stop \---

Start \--- You can't post links that were posted previously even though they have different content e.g. [https://www.nasa.gov/nasalive](https://www.nasa.gov/nasalive) so it would be good to have a flag stating that it's a live stream with new content

Continue \---</comment>


A GRE-mathematics-inspired quiz used to test higher math problem solving skills - <AUTHOR> https://mathvault.ca/math-test/ <comment><USER2> This has errors, including at least two problems with the wrong answer.

</comment><comment><USER3> just get loading dots.</comment>


Pixels to Centimeters Converter - <AUTHOR> http://aiconverter.com/resolution/pixels-to-cm <comment><USER2> Couldn't this webpage actually detect the screen resolution from JavaScript or http headers?</comment>


The Bash Guide - <AUTHOR> http://guide.bash.academy/ <comment><USER2> I wanted to read it, but the design is so awful I gave up after a minute.</comment>


LibrePCB 0.1.3 released, now with DRC - <AUTHOR> https://librepcb.org/blog/2019-11-30_release_0.1.3/ <comment><AUTHOR> Before people start asking:

Comparison with KiCAD and Eagle: [https://librepcb.org/compare/](https://librepcb.org/compare/)

Talk by Urban that explains why he started LibrePCB, and how the library concepts are different from other similar tools like KiCAD: [https://www.youtube.com/watch?v=vu-h5y6tK34](https://www.youtube.com/watch?v=vu-h5y6tK34) (Slides: [https://archive.fosdem.org/2018/schedule/event/cad_librepcb/...](https://archive.fosdem.org/2018/schedule/event/cad_librepcb/attachments/slides/2267/export/events/attachments/cad_librepcb/slides/2267/librepcb_slides.pdf))

If you want to try it: [https://docs.librepcb.org/](https://docs.librepcb.org/)

Previous HN discussion: [https://news.ycombinator.com/item?id=18569969](https://news.ycombinator.com/item?id=18569969)

<comment><USER3> I was at FOSDEM 2018, when LibrePCB and Horizon EDA were presented, and they both looked very interesting. I will try LibrePCB for some small boards I want to make, the library concept sounds like something we sorely need.

<comment><AUTHOR> There will be another LibrePCB talk at FOSDEM next year!

</comment></comment></comment><comment><USER4> I started using librepcb for some smaller projects last year after having some issues with kicad. My thoughts after manufacturing ~10 boards:

* It's simple, but what is there works reliably.

* Library management works really well.

* There are some issues with grids and alignment

* DRC was available in the ui but could not find any errors (have not tested 0.1.3 yet).

* No auto place/route. Horrible default placement.

* Minimal manufacturing support but what is there works

I moved from kicad when my old designs started looking different/broken due to updated components (!!). How can kicad team allow this?

<comment><AUTHOR> Thanks for your feedback! Great to hear from people that are using LibrePCB :) I agree with most of these things.

Note: I think there was no DRC available in the board editor before 0.1.3, only an ERC which reported things like unplaced components. In 0.1.3 you have an actual DRC that checks things like copper clearance, minimum drill diameter, etc.

PS: If you have a nice project to share, feel free to post it at [https://librepcb.discourse.group/t/projects- madewithlibrepcb...](https://librepcb.discourse.group/t/projects- madewithlibrepcb/99) !

<comment><USER4> You are right. But IIRC unplaced components was the only thing the ERC could detect :(

</comment></comment></comment><comment><USER5> See also: HorizonEDA [1], which I've used for a handful of projects and are really happy with - mostly due to how much its library/parts UX is better than anything I've every used before.

[1] - [https://github.com/horizon-eda/horizon](https://github.com/horizon- eda/horizon)

<comment><USER6> I agree. Used it for multiple projects already. As one of the main contributers to the parts library I especially like Horizon's parts pool concept for these reasons:

\- the modularity (+inheritance) allows you to reuse a lot of existing stuff and change things in one place while affecting all

\- the simple json format allows you to create parts/packages/etc from scripts very fast

\- the package footprint editor is great and has generation scripts for a ton of existing packages (SOIC, QFN, etc.)

I heard it was planned to release a 1.0 on the next FOSDEM in january.

</comment></comment><comment><USER7> It's fantastic that LibrePCB exists to solve the key pain points around KiCad, but I wonder what the end state is. Network effects come into play pretty strongly here with libraries, reference designs, and community knowledge. It took years of improvements and Eagle getting heavily monetized by Autodesk for KiCad to become the de facto EDA tool for hobbyists and open source hardware developers. This space isn't that large. Is there a scenario where LibrePCB gets enough critical mass behind it to be competitive with KiCad, or will KiCad gradually improve and continue to grow to prevent that from ever happening?

<comment><AUTHOR> If there can be multiple graphics editing programs (GIMP, Inkscape, Krita, ...) and multiple 3D modelling tools (FreeCAD, OpenSCAD, Blender, Wings3D, ...) why shouldn't the space be big enough for multiple EDA tools (KiCAD, LibrePCB, Fritzing, Horizon, ...)?

<comment><USER8> I don't think it's a hugely controversial statement to say that the hobbyist circuit/pcb design scene is a _lot_ smaller then than the number of hobbyist graphic designers. So the question is more can the community actually support two/three of these programs while also offering enough features for both to be usable - or do we just get two/three effectively unusable programs with no library support.

<comment><USER9> I find it far more likely that ECAD industry will go the way of Blender where the high cost of per seat licensing will drive big companies to start contributing to open source alternatives to stop the bleeding. Given the diversity in needs of different industries, each could contribute the pieces they need into a whole that makes up a viable competitor.

The bigger problem than the number of hobbyists is that the vast majority can't even afford to prototype the high end of what PCB designers can do. For example, a 12-24 layer board with mixed RF and 1ghz+ digital signals (like the hundreds of smartphone main boards connected to a camera that are design each year) can cost thousands or tens of thousands to fab in small quantities, let alone assembly and parts to put it together.

<comment><USER8> That's a very interesting point, I do agree that could happen if enough companies are unhappy with the price, though that's not something I know much about. The price of switching to a new tool would be very high though, I would think, so any viable competitor needs to be very feature complete and probably needs a high degree of compatibility with whatever tools they're currently using.

And yeah, I was considering going into that but didn't want to talk too much out of my knowledge zone. There is definitely a huge divide between the professional PCB designers and what hobbyists (like me) tend to make. My most complicated board is a 2-layer with mostly through-hole and a few surface- mount. BGA, the really small surface mount parts, any anything crazier than maybe 4-layers is just completely out of my reach - I could theoretically design them with a lot of learning, but the expense of getting the design fabricated and the impractically of soldering them manually just makes it a complete non-starter. But yet, those parts are pretty much all that you'll see on modern boards. What I'm doing is so much simpler than what professionals are doing it's really not comparable. _I_ mostly don't need the complexity of something like Eagle, but for companies doing modern PCB design those complex features are an absolute requirement.

<comment><USER10> You can solder 0402 scale stuff with a pair of tweezers, a $20 USB microscope and a regular soldering iron. 4-layer layout is actually easier than 2-layer, it means less track gymnastics required. This kind of stuff could qualify as 'professional level', a good choice for all kinds of general boards (sure, not smartwatches probably).

<comment><USER8> For me, the biggest limiting factor is not really skill, but cost. I can theoretically do all of these things, but the cost tends to be prohibitive and the risk too high. 2-layer boards are the best and 4-layer boards are my limit because going any higher just goes way outside the price I can justify putting into hobby projects that may not pan out. 2-layer boards you can sometimes get on sale dirt cheap (ignoring shipping...), and the mark-up when going from 2-layer to 4-layer tends to be at least 2x, and for most places I've looked at more like 4x or higher.

The same thing goes for small surface mount stuff. Ex. I was looking at using a TSSOP package for a project, but I just couldn't justify the cost of ~10$ a chip when I was unsure I could even solder it. Even for my last project, I messed up a few boards because I had trouble soldering the leads for the Micro-USB connector on it.

On the topic of 0402's, I agree I could probably solder them with enough patience - though that goes back to the risk issue, if I can't then I blew a bunch of money on boards I can't put together. For my projects, I thankfully haven't yet run into a situation where I needed to go that scale, so the lowest I've gone are 0805's, which are nice and chunky.

And to be fair, I don't really know what qualifies as "professional level", I'm mostly thinking of things like computer motherboards, phones, smart watches, etc. Tons of things have PCBs in them that don't require that level of detail, and I don't know the percentages of people doing each - <USER2> there is a decently sized professional market for a tool that can do smaller boards with less layers/complexity much smoother.

<comment><USER11> > the biggest limiting factor is not really skill, but cost

Can we put a number on the cost?

Seems to me like if you want a "serious amateur" electronics lab for doing things like prototyping boards with BGA components then you need a budget of around $300 - $1500. Price depends on whether you want cheap-and-cheerful starter kits that will eventually be replaced verses professional stuff that ought to last for decades.

On the one hand that's real money but on the other hand that's also what it costs to buy a new laptop or travel to a conference.

</comment></comment></comment></comment></comment></comment></comment></comment><comment> dev-il Is it possible to import/convert KiCAD libraries? Library coverage of the gazillion of available components is something that takes a lot of work and time. Even KiCAD with its head start, and higher user count that comes with it, is still lacking a lot of components. So whatever one thinks of KiCAD's libraries or library management… it would still make a huge difference for the user to have an import function or conversion tools so as to not have to start pretty much from scratch as long as the library coverage is lacking.

</comment><comment><USER11> Thanks for posting this. I'm planning to start work on my first ever PCB tomorrow and I'll try learning this instead of KiCAD and see if I need to switch or not.

<comment><USER4> If you are completely new to PCB design and manufacturing I would recommend kicad instead.

I like them both but kicad has excellent tutorials on all aspects of the process. See for example the Conceptual Electronics videos on YouTube.

</comment></comment><comment><USER12> Great. Now let's work on standardizing a footprint description language for components so we don't have to create a new footprint library for every new tool on the planet. (And maybe even so manufacturers will just release their footprints using that format, so we don't have to struggle there either).

</comment><comment><USER13> Cute, but EasyEDA is where the hobbyists are at right now. They realised that to win hearts and minds, the winning combination is to have a PCB editor, a components shop, a PCB manufacturing service and a PCB SMD assembly service all integrated (up to a point) in a single product.

<comment><AUTHOR> You're dismissing a free non-commercial open-source cross platform EDA software project by promoting a web-based closed source commercial EDA tool by saying "that's where hobbyists are" without even showing any evidence for that (and in a dismissive tone). I think you're on the wrong forum.

</comment></comment><comment><USER14> Engineering $/w industry in general is full of proprietary, fleecing, outdated, and $mug, bloatware and crapware.

Any open-source effort is welcome.

If it were up to me, I'd dedicate the rest of my life to developing open- source engineering s/w alternatives, so I could play a small part in thoroughly crushing the commercial land$cape of engineering $$$$ware.</comment>