Pair Programming at a Startup: time sink or saviour? - <AUTHOR> http://henrysztul.info/post/9079201249/peer-programming-time-sink-or-savior

<comment><USER2> I'm a fan of 'Plan together, implement independently.'

I don't need someone looking over my shoulder hunting for bugs while I program. What I need is someone to bounce high-level ideas off of so that I don't get paralyzed by indecision, or overlook an important edge case.

Bad design decisions concern me a lot more than a bug here or there.

In my experience, planning with someone else away from the computer, and then implementing is as fast (and usually faster) than sitting down at the computer and trying to bang something out from scratch.

When you do things this way you don't really need to have another person there because you've already agreed on all the important details.

<comment><USER3> I agree with this - whenever I see that a company has _actual_ pairing stations (computers with mirrored monitors and two keyboards and two chairs) I tend to shy away.

However, I still think everyone should have their OWN whiteboard, to enable precisely the conversations you mention. Easy enough if you have cube walls, but I've never seen a good whiteboard story in newfangled open-plan startup offices.

</comment></comment><comment><USER4> What is missing in most _pairing_ debates is the amount of pairing day to day being discussed.

Periodic pairing can be a great team building exercise, way to mentor someone, and a great way to be exposed to different programming workflows & tools. This idea doesn't seem very novel to me and hardly deserves it's own terminology, blog post, or article.

Personally I believe "pair all the time" is what is controversial and in my experience excessive. Other then commercial pilots, I don't see other industries where experts _always_ pair.

Also, if 2 people are better then 1 person...why stop there...why not have tri-coding or quad-coding?

<comment><USER5> Yes, this article sort of follows this logic:

\- We tried pairing for one day

\- Pairing was immensely productive for that session

\- Therefore pairing is AWESOME all the time

Pair programming ought to be considered like trimming your nails. Don't do it everyday or it's going to hurt. A lot.

</comment></comment><comment><USER6> I've done pair programming, and I enjoyed it, but I wouldn't want to make it my normal way of working.

As a math major, I was far more successful when I went to study groups, spent hours trying to prove theorems with other students, or the TA or professor, and so forth. In a way, you could say that's a kind of "pair math", at least the part where you try to work on a proof with another person.

I'd say stay very social and engaged with other people, and don't go dark, but I think tough coding problems require a lot of quiet focus in a place with minimal distractions as well. Like, I'd encourage programmers to find work from a local university library (for some reason, this works better for me even than a private, quiet office).

</comment><comment><USER7> Isn't pairing just a more immediate (and annoying) form of code reviews? I'd take code reviews over pairing any day.

<comment><USER8> Indeed. Pair programming is basically a continuous peer code review. I think you can get _most_ of the benefits of pair programming from code reviews for a fraction of the cost.

</comment></comment><comment><USER9> I'm confused by people who pair all the time, because it seems like the benefit of pairing varies heavily depending on the current programming activity.

For example, when I'm debugging, I can easily be several times more productive with someone else trying to guess what is going wrong. On the other hand, for most "glue programming", it feels like a huge waste of time to be looking over someone's shoulder while they try to figure out the best library to play sound or how some website API works.

Regular programming where all of the libraries and general plan are known seems in between those two extremes. Sometimes a second person can help detect problems and/or keep the first person on their game, but sometimes basic conflicts over code style can arise.

I've never been part of a pair programming shop, but I've tried pair programming with similarly inexperienced pairs before. How do people who pair all the time resolve problems like redundancy when looking up or learning information? Relatedly, how do they solve situations where basically one person is the only person who understands how to solve the problem (either because of skills like statistics or because of knowledge like understanding some API), and the second person is just along for the ride?

<comment><USER10> I think it generally tends to reduce the amount of surfing around for information, as the chances of one of two people knowing what to do or where to look are twice as great.

Also a huge benefit is learning. In that second example there is a lot of valuable skills transfer going on.

</comment></comment><comment><USER10> I have seldom done it well. Normally one person rushes off to "just quickly try this idea", without really explaining it ("just wait a minute, it will be quicker to just type it in than explain it") so the other person is limited to basically spotting errors which is slightly useful, but probably not the best way to spend a second programmers wages.

It excels in combination with TDD. One person writes a test, and the other person makes it green and writes the next test and so on.

Combining those two practices is very powerful.

Another time I don't like to pair is when debugging or trying to understand some old legacy code or something. If two people have different strategies for doing that it doesn't really make sense to pair. I like to write a lot of stuff down on paper for example, another guy likes to click "step" in the debugger on a lot.

</comment><comment><USER11> my co-founder and I don't pair program per se but we both are familiar with each other's main domain and often switch (front end/back end) when the other is stuck or frustrated. this works pretty well, I've found, and has the added bonus that we both know the product back to front.

</comment><comment><USER12> > So the question posed here, is peer programming a time sink for an early > stage startup? No. > That being said peer programming is just another tool > in an arsenal that startups should use in appropriate situations.

So the answer is, "maybe". Neat.

</comment><comment><USER13> Emergent peer programming is the best. I've done 2-3 instances of it over the last 3 years and it definitely felt like we truly moved mountains during those couple of hours.

One time we wrote a quite complicated graph-based algorithm (as in, lots of bug potential, but it turned out bug free) and the other two times we fixed bugs that hounded us for weeks in just one session.

I definitely feel like it works best in those situations when both people can complement each other somehow. If it's just a junior/senior person it will probably not be very useful for the senior person (note I mean a true junior here with little programming experience, not just some non-senior engineers).

</comment><comment><USER14> I am very much against the idea. I do think there are valuable excercises where you work in a pair to do software design, however the idea of sitting behind the same computer for 2 days with the same person does not sound great. That being said, I am always happy to have 2nd pair of eyes look at some of my code, just not in the moment its being written.

I do like these Shelby guys though, so I would love to hear from them in more detail of how it went?

</comment><comment><USER15> Pair programming is great since it's a mutual monitoring setup to prevent goofing off at work. You are far less inclined to read HN or Twitter if someone is sitting beside you watching. Likewise you are watching your coworker, too.

Think of the 2 to 3 hours real work done days? Now it's straight 8 hours of real work. You come out ahead even with two people at one job.

(just kidding)

<comment><USER16> I actually think this is a valid point. The productivity gains from the lack of goofing off might not, by itself, cancel out the cost of two programmers, but in concert with the other benefits mentioned, like fewer bugs, it could result in a net gain in productivity.

</comment></comment><comment><USER17> I'm the happy partner in this week of peer programming. Great post and great results

</comment><comment><USER18> Nothing wrong with pair programming, but it sure is easier to be "a profitable company that had two programmers sitting in front of one computer, writing code, together" if the company charges by the hour!

</comment><comment><USER19> Also relevant:

[http://en.wikipedia.org/wiki/Pair_programming#Costs_and_bene...](http://en.wikipedia.org/wiki/Pair_programming#Costs_and_benefits)

<comment><USER4> _Studies have found reduction in defect rates of 15% to 50%_

Correlation does not equal causation...other practices that usually accompany teams that pair include continuous integration and a strong focus on automated testing.

</comment></comment><comment><USER20> 1 coder for the price of 2! What a steal ;-]

</comment><comment><USER21> I'm not sure it's 2x productive, and can be annoying/tiring as hell. Much better used in moderation.

</comment><comment><USER22> Remember "Hackers and Painters". Painters like to work alone. <http://www.paulgraham.com/hp.html>

<comment><USER23> Remember "Dabblers and Blowhards" <http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm></comment></comment>


Ask HN: Are Chromebooks ready for serious development? - <AUTHOR> The question if we can comfortably do development without a MacBook has surfaced (unintended pun) many times here. Do you think that a Pixelbook (or any Chromebook) is finally ready for that? Google claims so:<p>https://blog.google/products/chromebooks/linux-on-chromebooks/ <comment><USER3> I don't understand the authors choice to limit himself to Apple or Google. You've been able to do development on Linux notebooks (and Windows notebooks, of course) since decades. I can absolutely recommend Dell (and ThinkPad, though not from personal experience) notebooks with Ubuntu preinstalled/officially supported. Or is the question if a Chromebook is en vogue to use this season at Starbucks?

<comment><USER4> I use my Arch Linux T450 Lenovo laptopand it's a beast. $500 on eBay + $180 for SSD + $150 for RAM.

My laptop has 20Gb of RAM, 2x 1Tb SSDs, and 10 hours battery life, with 1 hot swap batteries pushing me to 18 hours battery life if I want it. Total cost: ~$900 with tax and shipping

IMO best track pad outside of Apple + best laptop keyboard

<comment><USER5> this looks like my dream machine. Two questions: how is the fan noise, and where did you find 1tb ssd drives so cheap?

<comment><USER6> I'm also running a t450, albeit w/ only 16gb ram and a 500gb ssd. Fan noise is not bad, certainly not loud enough to be distracting. I purchased mine refurb through Amazon for the 6 month warranty, but didn't need to use it. Wifi works great under Debian, but I could not get the Bluetooth card to work reliably. I replaced it with a card designed for the t430, but it wasn't all that easy. I would advise just using a USB Bluetooth adapter.

The only other complaint I have is that palm rejection for the track pad is poor, I eventually disabled the track pad entirely. I prefer the track point anyway, but I know a lot of people hate using them. Keyboard is excellent, IMO better than a MacBook. I would be curious, perhaps the OP used 2 500gb SSDs, you can get drive caddys to replace the DVD drive (I kept it, as I still need to read disks relatively often).

<comment><USER7> On my T430:

        synclient TouchpadOff=1

There's supposed to be a better alternative to the Synaptics stuff, now, so I read a few months ago, but I forgot to note it and haven't actively searched it out, yet.

</comment></comment></comment></comment></comment><comment><USER8> I've been using my Samsung Chromebook Plus for about a year now, and the answer is a fairly clear: no.

Everything about it is just sluggish and laggy. The opposite of snappy. This is compounded by the fact that the AWS and GCP web interfaces I spend a lot of time in aren't exactly lightweight, but that's the work. The SSH client is similarly just ever so slightly off.

In terms of just compatibility pains, don't even _think_ about trying to print from the thing. Also, the copy/paste mechanics are probably not wrong per-se but just odd enough that I'm constantly frustrated by getting it wrong. Lastly, tons of basic stuff is just a hoop to jump through now, like setting up an adblocker or using a basic text editor. I can't even imagine how hard a full IDE would drag.

Bear in mind this is the "plus" (arm) not the "pro" (x86). So maybe a Pixelbook with its full-i5 would get over the hurdle, but I guess my overall takeaway would be if your'e going to try a Chromebook make it an $800 one not a $450 one.

<comment><USER9> That's not a fault of Chromebooks themselves but the ARM CPU. Except for Apple, no one can pull off desktop class ARM right now.

The Pixelbook and the Chromebook Pixels before that have excellent performance for developers.

I'm sure a Chromebook Pro would have been a good choice for a workhorse as well.

<comment><USER10> I'd wait until they release a MacBook running on ARM to declare Apples chips as desktop class.

</comment></comment></comment><comment><USER11> A few months ago my Macbook Pro screen cracked while I was on a road trip. I thought I was screwed, but decided to try development on a Chromebook I had lying around.

That was when I discovered AWS Cloud 9. After getting back my repaired fully maxed out latest model Macbook Pro, I have not even bothered to restore the hard drive. Developing on Cloud 9 has been wonderful. Having everything already in the cloud in a production-like environment has enormous advantages. Sure there are things I occasionally may miss or be unable to do on a Chromebook, though this has surprisingly not been an issue yet. The only Mac app I've wanted to use is Sketch.

I have since upgraded to a Pixelbook, which has a gorgeous screen and a superior keyboard to a Macbook Pro. Touch screens with tablet mode make a computer enormously more versatile, serving as a tablet and media platform. If I lose or damage my Chromebook, I can continue development seemlessly on any computer, and log in to any Chromebook to recover my environment. Not having a $3000 laptop that I need to protect with my life, knowing that if I lose everything nothing is lost, is very liberating.

I'm now transitioning off of iOS because of the lack of iMessage and the general pointlessness of using an iPhone with a Chromebook. Perhaps the biggest annoyance with iOS devices now is the disastrous Lightning connector, which adds so much complication to my cable environment. With a Pixel 2, I basically just need a few similar wall chargers and USB-C cables rather than a tangle of converters and cables.

Surprising myself, I am now basically committed to a future on Chrome OS and Google's ecosystem. My only regret is not supporting Apple's respect for privacy, which is a substantial regret. I can only hope our Google and perhaps government some day will adopt Apple's ethical standards around privacy.

Anyone want to buy a Macbook Pro? It really is a beautiful machine. I just don't seem to need it anymore.

<comment><USER12> > Having everything already in the cloud in a production-like environment has > enormous advantages.

Could you talk about this a little more? I have never used C9. I use git and an IDE on multiple devices (Linux on home desktop, Windows on old ass laptop, macOS at work) so I can work in basically the same environment on any of those devices any time. Granted, I can't just pull up a browser on _any_ device, but that seems like it would be a rare use case (for me, anyway).

Sounds like you don't need that MacBook anymore, wanna sell it to me cheap? (:

<comment><USER11> In reality those environments are not "the same". You have all sorts of libraries that are compiled and set up specifically for your system, and those differences add up.

With Cloud 9 everything is on an EC2 instance with Linux, exactly the same platform as I will deploy in production.

<comment><USER12> True. My environments are not the same. Most will call that a disadvantage. I rather like knowing about environments on various platforms and how my applications support them. Of course there are other, probably better, ways to approach that (:

It sounds like C9 can be really useful for AWS deployment specifically, but beyond that I don't see much value over git+IDE.

<comment><USER11> The value is that it is online on an ec2 instance on the Aws network , which may or may not be something you want.

Also git+IDE is exactly what I use with Cloud 9. C9 is the IDE.

</comment></comment></comment></comment></comment><comment><USER13> "if we can comfortably do development without a MacBook"?

What kind of premise is that for a question? You think this forum consists only of devs using Macbooks?

<comment><USER14> Windows is out of the question for a lot of devs that live in the Unix shell. Sure, I could run a Linux VM or dual boot, but those aren't very pleasant experience.

<comment><USER15> FYI, Windows 10 also has WSL [https://docs.microsoft.com/en- us/windows/wsl/install-win10](https://docs.microsoft.com/en- us/windows/wsl/install-win10)

<comment><USER16> Yeah, but it is insanely slow

[https://www.phoronix.com/scan.php?page=article&item=wsl- febr...](https://www.phoronix.com/scan.php?page=article&item=wsl- february-2018&num=1)

[https://www.reddit.com/r/bashonubuntuonwindows/comments/7knl...](https://www.reddit.com/r/bashonubuntuonwindows/comments/7knl03/is_wsl_very_slow_for_anyone_else/)

<comment><USER15> Strange. I've never noticed that.

<comment><USER17> It's fine for casual use and CPU- or network-bound tasks. But anything involving lots of filesystem operations (like, heh, building software) is just a mess. The project I'm working on right now is a biggish C tree using cmake/ninja that still builds in 3-20 seconds (depending on configuration) on my dual core laptop but takes 90+ on a quad core skylake under WSL.

But for the simple case of "I need to ssh around or pull some files with curl or check something out from github or whatever and I don't have my linux box" it works great.

</comment></comment></comment></comment></comment></comment><comment><USER18> I'd give it a qualified yes. Actually, I don't think "Chromebooks" is the right thing to ask about, that sounds like the physical hardware. That varies widely and can mostly run Linux, but that's not particularly special. We should ask if ChromeOS is ready for serious development.

There's definitely some types of development work that just won't ever be practical in any way on a ChromeOS device. Developing iOS apps, Windows GUI apps, etc. Sure you can remote into a MacOS or Windows machine, but I don't think that counts. Anything requiring massive CPU power or RAM probably won't work too well either.

There's also definitely plenty of ways of working productively that are very practical. Being remoted into a cloud IDE or SSH works fine. Not sure if that counts, but cloud work is the main idea of ChromeOS. You can install Linux side by side with Crouton, but going outside of ChromeOS seems beside the point. You can install something like Termux to get a pretty normal Linux interface without breaking ChromeOS security, but it does seem to have a couple of quirks.

I've been using the Termux method for a while for side projects, and I've mostly been pleasantly surprised. Ruby, Python, C, Go, and Rust all run just fine, as does Vim, Tmux, SSH, Git, etc. Even installing local DB servers for web apps to test against seems to work fine. I have run into a couple of snags with various Ruby gems that I haven't gotten around to sorting out yet. The community around the setup is decent, but maybe not as big as you'd really want for something you "seriously develop" on. You can certainly get most types of development work done on it though.

</comment><comment><USER19> I couldn't stand anymore the stream of mistakes that macOS had become so I had installed ChromeOS as main OS on MacBook Pro.

This is excellent combination. Mac is still superior hardware wise and ChromeOS is really nice graphical environment for web browsing, HBO Go, Spotify, YouTube, Google Play Music, Google Photos, Google Drive, Inbox etc. Anyway most of the time I spent inside terminal - crouton - Debian stretch - Vim - gcloud.

I am enjoying the screen real estate of Mac's Retina display, touchpad, keyboard, battery life etc. On the other hand I am free from half-baked Apple software...

I have a backup ChromeOS install on at least 6 years old x230. I have also wiped out Windows and installed ChromeOS on my Mom's i3 Lenovo laptop.

So far so good..

<comment><USER20> How'd you do this? Couldn't you just use Chrome on OS X as a ChromeOS of sorts?

<comment><USER19> I had used Neverware build of ChromeOS[1] - no dual-boot anymore so I had to make a choice.

Well, it had been a process - I had been growing dissapointed with lack of quality of Apple software, each iteration beeing of lower quality and plain dumber then competition (iCloud, Siri, Apple Music etc.) High Sierra had been the final straw.

Over time I have stopped using iCloud, Apple Photos, Mail, Safari and replaced them with Google Photos, Google Drive, mutt in Terminal, Chrome etc.

At some point I have realized that I have only single app comming from AppStore on my computer. The rest is either free software (paid for but dowloaded from the web not from Apple's walled garden) or from Homebrew.

At that stage jumping out of Apple's garden had been quite painless for me. I am not missing iMessage even. And I have started using Sony XZ Premium instead of iPhone at more or less the same time (better screen resolution, better bluetooth music quality with Sony MDR-1RBT headphones and at quarter of the price of iPhone 8).

Some time ago when still on macOS I have started using dnscrypt-proxy 2.0 on my router which disables most of call home capabilities of Google, Apple, Facebook etc. And also I have my own extension for Chrome which keeps my Google Search and Youtube activity transparent to Google. Not industry-grade but I am enjoying enough privacy on ChromeOS.

[1]: [https://www.neverware.com/freedownload](https://www.neverware.com/freedownload)

</comment></comment></comment><comment><AUTHOR> Support for Linux will enable you to create, test and run Android and web app for phones, tablets and laptops all on one Chromebook. Run popular editors, code in your favorite language and launch projects to Google Cloud with the command-line. Everything works directly on a Chromebook.

Linux runs inside a virtual machine that was designed from scratch for Chromebooks. That means it starts in seconds and integrates completely with Chromebook features. Linux apps can start with a click of an icon, windows can be moved around, and files can be opened directly from apps

</comment><comment><USER21> I use a 12" MacBook and find it almost fully suitable for all development. Even with VMs and Docker containers, it's great, but if anything misbehaves and gets it running too hot it can get sluggish. It's unable to recover on its own because it has no fan.

MacBook Pros can keep going even with CPU-abusive software. I don't want to carry the extra weight so I choose the trade-off.

But a Chromebook? I don't understand the fascination with trying to develop on a more challenging dev platform that offers seemingly no advantage in terms of performance, mobility, price, or ergonomics.

<comment><USER22> Escape key, siri button, densed keyboard keys, and unreasonably huge trackpad are the things that made me switch. I am in a meeting or listen to a youtube video... I press backspace ... Oh my bad I pressed siri button - <USER2> goes silent for 30 seconds.

I disabled siri button... a few weeks later apple released an update and siri is back ... just before my important call. My anxienty level is to the roof.

<comment><USER23> If you don't use capslock you can set the keyboard to map that to escape.

<comment><USER20> I think that's the de facto control key on Macbooks since they aren't in the bottom left corner. It'd be cool if we could configure a single caps lock keypress to Esc and holding it down to Control.

<comment><USER24> I use mine for escape and hadn't considered using it for control. Is it more comfortable?

<comment><USER25> It's indispensable because OS X has Emacs bindings in all standard controls. Control A, E, K, P, N, C, D.

These keybindings are one of the only reasons I have stayed with OS X. I'm surprised that others use Cmd-arrow combinations instead.

</comment></comment></comment></comment></comment></comment><comment><USER26> It's a challenge to understand what information is leaking to Google when using ChromeOS and its cloud-first, always-logged-in design. As developers, we have a responsibility to our clients to keep their secrets.

Many clients may not care -- imagine how much sensitive business data Slack has! But I'd want to make sure that my usage of ChromeOS was compatible with the client's policies, compared with a laptop running one of the more traditional self-contained operating systems.

<comment><USER27> Are you talking about the threat of Google getting hacked? Because otherwise ChromeOS seems considerably more secure than OS X or Windows

<comment><USER26> ChromeOS encourages you to store files using Google Drive. There is the threat of Google being compromised, yes, even though they take security much more seriously than the average company. More likely, your own account can be hacked, since it's out there on the web and not all developers are security- minded, sadly. But there's also the concern that you can have your Google account shut down and it may be difficult to get it restored.

I would also like to better understand what profiling data Google collects during ordinary usage of ChromeOS. I'm not an expert on that subject and don't want to spread FUD, but when you're logged into the Chrome browser, Google finds out an awful lot about you through your web habits.

<comment><USER27> Assuming you install updates from your OS vendor regularly, than Microsoft or Apple getting hacked is game over anyway. Google has some if the best tools available for securing your account (very solid 2fa if you set it up right)

</comment></comment></comment></comment><comment><USER28> It's been perfectly possible to do real work on a Chromebook using web IDEs, Crouton or tools like Termux for some time now. Similarly, Linux on laptops has been perfectly viable for many many years. I ditched my MacOS experiment around a decade ago after getting fed up of the terrible package management story. Fink and macports were trying their best fair play. Better with brew these days but still not in the same realm as the native Linux package tools and repositories. Similarly if you're using containers the native story is just smoother.

<comment><USER29> Hypervisor layer aside, I'm not so sure this is the case anymore. Homebrew is pretty good these days. Even running a setup like dozens of Docker containers with a local k8s cluster in Docker for Mac works pretty well. I feel like any friction in between Linux vs Mac dev has become negligible.

The only day to say exception to this is Docker for Mac's power usage.

</comment></comment><comment><USER30> The pixelbook is rather expensive for what it is.

I have a secondhand hp z620 (32 cores, 64 gigs of ram) and a 4k screen. Total cost < £700

Whilst being about 4 years old, its still much much faster than a top end macbook. Yes its not portable. However I don't move around that much at work (If I do, everything is in git, or one can ssh in from another machine.)

if I need to work from home, I have any old laptop to ssh in and work.

being able to make -j 30 on a large project, is worth every penny, or not being able to move it about.

<comment><USER31> I have the same setup and it's great for some development tasks, but its single-core speed can't match the latest processors. I actually installed Linux on my company-issued MBP and I run a bunch of dev tools on it via Xwin from my z620.

</comment></comment><comment><USER32> I've been doing that for years: [http://kmkeen.com/c100p-tweaks/](http://kmkeen.com/c100p-tweaks/)

Development doesn't require any more CPU than word processing. You're type stuff up, and there is a pretty strict grammar check. I don't get why people why people want to run huge things on a laptop. It is way more economical to shell into a beefy server when you need big iron instead of carrying it with you.

<comment><USER33> Some people still write code that is compiled.

<comment><USER34> And the people who do that tend to use super bloated Dev environments.

<comment><USER35> I've had the opposite experience so far. Eclipse IDE that uses 1GB+ of RAM? Compiles java code to bytecode instantly everytime you save. Sublime Text + gcc for a C++ project? Well, you have to live with the fact that sometimes a rebuild is going to take more than 5 minutes.

In other words it has nothing to do with how bloated the dev environment is and more with the fact that some programming languages have features that can cause excessive build time.

</comment></comment></comment></comment><comment><USER36> There's no general answer for this question.

I cannot develop on web IDEs or on a box with only 16G RAM. Some others can. I need to be able to run many containerised service locally, others might only need a node.js instance.

Depends on what you do. It's like asking whether a motorbike is suitable for your daily work. If you're a pizza delivery boy then yes. If you are transporting heavy machinery, then no.

</comment><comment><USER37> If you don't want to buy a MacBook (nor, I presume, a laptop with Windows preinstalled), do yourself a favor and get an Ubuntu machine from Dell or System76.

<comment> purple-again I second this recommendation. I have been dual booting Ubuntu for many years on my gaming PC's and recently bought a pre made Ubuntu machine from Dell. The least fun I ever have when installing a new machine is trying to get my fucking three monitors working the way they should.

The Dell laptop plug and played into my (not thunderbolt, wd15 or something dock) and all three monitors were literally plug and play. It felt like Windows again and blew me away.

</comment></comment><comment> mike-cardwell That link just says you can run Linux in a VM on a chromebook for development.

You can also run Linux on any other laptop in the World. Natively, or in a VM.

</comment><comment><USER38> @cesidio that greatly depends what 'development' means for you. I mean, if it means developing iOS apps then you probably still have all the trouble which you have when you are trying to develop anything for the Apple ecosystem without being part of it. For the Microsoft ecosystem it looks the same.

But if development means to do web development you are just fine, as Linux is the best platform for that anyway. Other things, like resource intensive stuff (e.g. C compiling) might still be too much to do it comfortably on a Chromebook.

</comment><comment><USER39> Yes. Most of the time, all you need is a basic computer and internet to SSH into a more powerful VM in the cloud. I don't host my dev stack on my computer so local computing power is mute. It's strange but a celeron chromebook is all I need.

When I travel, I don't take my heavy Macbook Pro. I take my old Acer C720 because it has Bash, a Cloud IDE, and everything I need to code. Just in case I need to do more, I have KDE on chroot for when I need more tools.

</comment><comment><USER40> I'm doing all my development on a HP Chromebook 13 G1. While the CPU is low- powered, and I since ditched the ChromeOS for a custom Linux, it's a fairly capable machine, and very cheap for what it offers.

My recent 1-year review is on [https://llogiq.github.io/2018/03/02/chromebook.html](https://llogiq.github.io/2018/03/02/chromebook.html)

<comment><USER41> >The downside is that I still have to press Ctrl + L at bootup and avoid pressing SPACE before the machine boots, otherwise the machine might try to overwrite my system with a clean ChromeOS install

You can use flashrom to flash the UEFI firmware from MrChromebox. It will get rid of the ChromeOS recovery stuff and makes it a proper laptop. Remember to backup your data, as always.

</comment></comment><comment><USER42> I am typing this on a Chromebook that will soon get the ax. It is a Lenovo Thinkpad X131E. It came with a 16GB eMMC solid storage and a free SATA port. I had to open the computer and disassemble it down to the board (thankfully the documentation is very extensive) to flip the switch that allows me to install a real BIOS (or the coreboot EFI, that thing with the rabbit logo). I installed Fedora on it and now I can do everything on a Chromebook. I added a 500GB hard disk I had lying around but with SSD prices no longer climbing up, I am thinking about getting a 500GB SSD for this computer. Maybe I could even keep using the SSD after this chromebook dies.

So in this sense, yes I am comfortable doing development on a chromebook but it really isn't chromebook anymore. It is a Linux machine at this point. The keyboard is a close approximation of a real Thinkpad and the computer was cheap enough that I don't mind throwing it in my backpack and using it on the train.

</comment><comment><USER43> Two months with the Pixelbook i7, don't regret investing that much on a Chromebook, which was my main concern. Kept the old MBP just in case and it's been just sitting there, even through tax season.

Pretty happy with performance, Linux apps work well but still "feel" a little out of place. Very like how it runs Android apps, so much works but it's just the issues that DO come up that can be frustrating. If you're not ready for that experience then it might not make sense to switch your main dev machine.

Doubt I'll ever buy a laptop bigger than this one ever again, but it is a little harder to dev directly on this, mainly bc of that MBP trackpad, but this keyboard is MUCH better.

</comment><comment><USER44> I have a $300 (plus SSD price) Dell Chromebook 13 from a few years ago which I use [https://github.com/dnschneid/crouton](https://github.com/dnschneid/crouton) on to run Ubuntu with i3. It's a wonderful machine for light web dev (I've never tried any really stressful development, I use my fuller spec'ed laptop for that). Great battery life, light, best keyboard I've used. I don't know how well it would work for 'serious' development depending on your field, but it's probably the best starter laptop for programming I could possibly imagine.

</comment><comment><USER45> [https://usesthis.com/interviews/junio.c.hamano/](https://usesthis.com/interviews/junio.c.hamano/) works for this guy but I guess he uses the terminal :)

</comment><comment><USER46> There's a few options already, I've written about this exact question:

[https://headmelted.com/coding-on-a- chromebook-84335cce96c8](https://headmelted.com/coding-on-a- chromebook-84335cce96c8)

This doesn't take in Crostini, which I'll be following up on - and I intend to rework the VS Code builds and scripts for ARM to use Crostini instead of Crouton, but everything discussed is still pretty much the state of play.

I still think it's worth the extra couple of steps by far, but that's because I just don't have time in my life anymore for all the hassle Chrome OS saves me from.

</comment><comment><USER47> Personally I've done development work on a Pixelbook for a while now (Using a cloud IDE), and I've enjoyed it greatly.

If being able to run a Linux VM is what it takes for others to do the same, great.

</comment><comment><USER48> I use a 2015 Chromebook Pixel.

\- Stand up an Amazon WorkSpace and RDP to it for Windows work \- Use Android apps \- Install Ubuntu using crouton

That's pretty much it. Use it all day every day.

</comment><comment><USER49> You can use Termux on a Chromebook to run Linux already and develop. See termux.com and [https://medium.com/digitalcrafts/exiting-vim-on-a-touch- scre...](https://medium.com/digitalcrafts/exiting-vim-on-a-touch-screen-the- new-development-environment-frontier-d457fb89269f)

This is without going into dev too. You just need to enable android on your chromebook.

<comment><USER50> Prefer GNUroot over Termux.

</comment></comment><comment><USER51> That is a funny question, I've been writing code for 10 years and have used a variety of hardware. At no point has the host OS limited my productivity. I even used an old ThinkPad with a broken trackpad for a while during a particularly poor period of my life. Once you learn to use the terminal and stop being a GUIwarrior, you will have an easier life.

<comment><USER10> Once you know how to use both GUIs and the terminal you will have an easier life. They both have their place. If you're developing a Windows app, you should probably use visual studio. If you're doing basic web development then the terminal makes more sense.

</comment></comment><comment><USER52> I do 'serious' development on a Chromebook, and a very low-spec one at that (Acer Chromebook 11, with an 11" screen and 2GB of ram). What's more, I do development in user mode rather than developer mode, without using Crostini. The thing is, very little of what I'm doing actually runs on the Chromebook itself. I use Codepen.io (which is awesome) for a lot of front-end dev work, which does SASS, Babel, etc on a remote server for me. I use Codenvy to do more complex things, again on a remote server. I do some Node and Python on the machine itself (using Termux), but that's very light-weight in terms of resources. It's still proper development though. The things I make end up on servers being used by thousands of people.

I'd do frontend things on the machine itself if Chrome let me access localhost, but it doesn't. (Weirdly, Firefox for Android does, but that doesn't have any dev tools).

The problem with asking whether Chromebooks are ready for 'serious' development is that development is a _huge_ topic that covers everything from editing a config file in VIM to building a UI in XCode. You can't answer a yes or no to a question like that.

tl;dr It's great but I wouldn't want to run Android Studio on it? My iMac struggles with that...

</comment><comment><USER20> Can anyone recommend a cheap used Chromebook to check out how development would be on it?

</comment><comment><USER53> Slightly OT but which development laptop has best keyboard? I can't stand my circa 2012 rMBP keyboard (and the newer ones are even worse). I'm guessing a Thinkpad?? But I can't find one with good battery, screen and weight.

</comment><comment><USER54> Only a Mac allows to compile for iOS plus MacOS. So there is little choice if you want to keep all options open.

</comment><comment><USER55> Chromebooks have been ready for serious development for a while now, provided the limited hardware can suffice. The last release of this was a year ago, so perhaps there are better options now? [https://galliumos.org/](https://galliumos.org/)

<comment><USER9> That's still just another Linux distribution with a few improvements to Chromebook-compatibility. I'm still hoping for a team to form around Chromium OS to better integrate open source into it, so that people can run something like Chrome OS without having to have a Google account. I'm disappointed that there isn't something like a new approach to Firefox OS using Chromium OS from Mozilla. In a couple of years, Google will move everything to Fuchsia and away from Linux and then everyone who doesn't want to run Windows/macOS/Fuchsia for privacy or "openness" reasons will still be stuck with the classic desktop Linux without the improvements of storing userdata in some kind of personal cloud per default.

</comment></comment><comment><USER56> With crouton, and now native linux support, absolutely

</comment><comment><USER50> Have a Pixel book and been using the new GNU/Linux support and supported everything thrown at it. Supports Docker, Wine, Eclipse, AS, and Steam.

</comment><comment><USER57> The hardware of every chromebook I know is enough to run a terminal emulator and a browser. You can install a gnu/linux distribution on most x86 based chromebooks. Gnu/linux is arguably better suited for "serious" development, so I don't understand the premise in the question.

</comment><comment><USER58> I have the latest MacBook pro and the latest Pixel book. They keyboard on the MacBook is passable. The keyboard on the Pixel book is garbage. That the Pixel book can fold into a tablet is pretty nice.

For me, the lackluster keyboard puts paid to the idea of developing on the Pixel book. However - as an interface to Google online services, it's great.

<comment><USER9> Interesting observation. Everyone who touched my Pixelbook had nothing but praise for keyboard. Especially those coming from a touchbar Macbook Pro. Most reviews I've liked the keyboard very much. The only weakness of the keyboard is the uneven backlight.

</comment></comment><comment><USER22> Judging by your questions it sounds like you want an adventure and excitement in your life. You will get it all with the chromebook. You will be able to do everything with it. At the same time you will encounter issues that others havent yet. You will be on your own to solve them due to the low popularity of Chromebooks.</comment>


Weird Futures You Can Trade - <AUTHOR> https://www.investopedia.com/financial-edge/0310/6-weird-futures-you-can-trade.aspx <comment> python-guy-vt If you can trade futures on the weather, then why not sports games? Why should Las Vegas be the ones getting all the money on sports bets?</comment>


Ask HN: What are examples of large state-funded (or owned) software companies? - <AUTHOR> <comment><USER2> Ubisoft Montreal took on a lot of funding and received an office space too from QC provincial government.

In return they produced a ton of hits, Rainbow Six, Splinter Cell, Ghost Recon, Prince of Persia, Donald Duck's Goin' Quackers</comment>


Decentralising the web: Maintaining the momentum - <AUTHOR> https://www.computing.co.uk/ctg/news/3036546/decentralising-the-web-maintaining-the-momentum <comment><USER2> How can something new already need maintenance?</comment>


Norwegian Town's Bright Idea Is A Shining Example Of Ingenuity - <AUTHOR> http://www.npr.org/blogs/thetwo-way/2013/10/23/240240813/norwegian-town-s-bright-idea-is-a-shining-example-of-ingenuity <comment><USER2> During WWII, Rjukan became the target of commando raids by joint British and Norwegian Resistance forces to sabotage the Norsky Hydro plant nearby, which was producing heavy water for the Nazi nuclear bomb programme.

This was proper, hardcore, bad-ass, hero stuff. Guys parachuted into occupied enemy territory, knowing that they faced execution by the Gestapo if they were caught, trekked cross-country for weeks, hid out in the wilderness for months and snuck into a heavily-guarded facility to plant demolition charges. Later they sank a ferry carrying supplies of heavy water being transported back to Germany.

More details here: [http://en.wikipedia.org/wiki/Norwegian_heavy_water_sabotage](http://en.wikipedia.org/wiki/Norwegian_heavy_water_sabotage)

<comment><USER3> The movie of the mission, _The Heroes of Telemark_ was almost as common a TV fixture in my youth as _The Great Escape_ :

[http://en.wikipedia.org/wiki/The_Heroes_of_Telemark](http://en.wikipedia.org/wiki/The_Heroes_of_Telemark)

<comment><USER4> and has little resemblance to the real story somewhat unsurprisingly

which is a shame because the truth is way more badass than the movie

<comment><USER5> This is one of those movies that could really benefit from a well made, modern treatment.

<comment><USER6> The BBC/Ray Mears "Real Heroes of Telemark" is fairly good, and you most definitely get an idea of how tough the guys involved were. Balls of steel.

</comment></comment></comment></comment></comment><comment><USER7> I think the real story here is the European sense of community. Let's face it, this project is not really a necessity (and it provides light to a very small section of the square) but the town decided to pool their money together and do it anyway.

<comment><USER8> I have to nitpick here and say that I don't believe this is at all a common thing in Europe.

It is true that smaller towns tend to have this feeling of community to them, but I find it hard to find it anywhere with more than a couple thousand residents.

</comment></comment><comment><USER9> Italian town did it first: [http://news.bbc.co.uk/2/hi/world/europe/6189371.stm](http://news.bbc.co.uk/2/hi/world/europe/6189371.stm)

<comment><USER10> It's written at the bottom of the article.

</comment></comment><comment><USER11> The whole town is actually considered for a place on the UNESCO world heritage list: [http://whc.unesco.org/en/tentativelists/5472/](http://whc.unesco.org/en/tentativelists/5472/)

It certainly has an interesting history, having started as a company town, important war history (sabotage of production of materials for the production of nuclear weapons), and certainly interesting geography.

</comment><comment><USER12> I'd like to see this sort of thing in urban areas too. Tall buildings mean dark valleys. I'm writing this from downtown Manhattan, where the narrow streets are especially shadowed.

But even in more residential areas of the city, more light at street level would be a lovely thing. Some of my neighbors have mirrored windows and you'd be surprised how much light that sends into my apartment.

<comment><USER13> [http://www.bbc.co.uk/news/uk-england- london-23930675](http://www.bbc.co.uk/news/uk-england-london-23930675) 'Walkie-Talkie' skyscraper melts Jaguar car parts

</comment></comment><comment><USER14> It is so hard to capture a 'light level' with photography. I wish they would have shown a photo without the reflected light, so as to give some contrast to the difference.

</comment><comment><USER15> The spot of light seems very small, They should have it focused on another reflector in the square to light-up the surrounding area.

</comment><comment><USER16> The Atlantic's photography blog, In Focus, has some photos of the mirrors in the two cities: [http://www.theatlantic.com/infocus/2013/10/using-giant- mirro...](http://www.theatlantic.com/infocus/2013/10/using-giant-mirrors-to- light-up-dark-valleys/100613/)

</comment><comment><USER17> I wonder why they begin to settle there in the first place. After the first few houses were up, they were probably aware of the lack of sunlight. So why would they suddenly need it? Probably because it looks cool, which I agree with.

<comment><USER18> The nearby 104 metre waterfall had something to do with it. They used the waterfall to make electricity and then they used the electricity to make fertiliser, hence the location.

[http://en.wikipedia.org/wiki/Rjukan](http://en.wikipedia.org/wiki/Rjukan)

</comment></comment><comment><USER19> I really wonder how this will fare during the winter. Granted, there is little sun during a snowstorm, but this will require a lot of maintenance with constant de-icing and such.

</comment><comment><USER20> I wonder how much heat this provides? Or is it mainly just to brighten things up?

</comment><comment><USER21> Pondering what happens when the pv cells get snowed under.....

<comment><USER22> Snow reflects sunlight very well. That is why it is generally darkest in northern countries in the autumn before the snow comes.

<comment><USER23> I think that's what einhverfr had in mind when he asked what happens when the PV cells get covered in snow.

</comment></comment></comment><comment><USER24> But how often do you get sunny weather in that location?

<comment><USER25> Often enough that when people go skiing in the mountains around there, they bring along suntan lotion.

<comment><USER26> How about in winter? :-)

<comment><USER27> I'd say skiing is predominantly a winter activity...

<comment><USER26> Hey, we're talking about Norway - it's pretty far north - I wasn't 100% sure :-)

<comment><USER25> The sun doesn't mind the northerly location. It's only 0.01% extra distance from its point of view ;)

Seriously, you can get a terrible sunburn if you don't take care of your face. A couple of days of direct sun plus reflections via the snow surface, and boom.

<comment><USER28> The cold, dry wind rushing past your face can't help either. Rough conditions for skin.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> I was surprised the reflectors were so small.

</comment><comment><USER30> Breaking alert: news organizations love puns

</comment><comment><USER31> So they brought sunlight to a parking lot. A. Parking. Lot. I was hoping for a decent cafe, restaurant, playground, meeting place, mosque or such to emerge. Let's see if that's going to happen.

<comment><USER32> I was hoping that support for worship of non-existing supernatural beings wouldn't appear in the comments. And in case any worshiping object should appear there, I vote for [http://en.wikipedia.org/wiki/Russell's_teapot](http://en.wikipedia.org/wiki/Russell's_teapot)

<comment><USER33> I'd prefer a Utah Teapot[1]. Then you can at least have a decent reference for your shadow rendering implementation.

[1] [https://en.wikipedia.org/wiki/Utah_teapot](https://en.wikipedia.org/wiki/Utah_teapot)</comment></comment></comment>


Pythonect 0.1.0 Release - <AUTHOR> http://www.pythonect.org

<comment><USER2> Awesome project. Going to test it today :)

<comment><AUTHOR> Excellent! Please share your experience :-)</comment></comment>


Best laptop for Hololens development? - <AUTHOR> I got my developer kit for the Hololens recently and am super excited about it (https://www.facebook.com/1RICcom/videos/1428091367208928/). I have all intentions of making this my focus over the next few years. The problem is that I'm really married to the Apple eco system as an ex iPhone developer.<p>So the first thing I need is a PC running Windows 10. I've decided against a desktop since I travel way too much and switch between countries frequently. I want to ask people who're used to working with Unity on Windows if they have any recommendations. I've been thinking about around $1200 for a laptop and $300 for a monitor but I can also consider $1500 for a laptop with a great screen. VR ready gaming laptops? What do you guys say? Any suggestions? <comment><USER2> Have a look at the Razer Blade Stealth. It's got Thunderbolt 3 so there's an option to get the Razer Core or another external GPU enclosure. Not Razer specific and will work with for example the XPS series.

</comment><comment><USER3> I'd definitely suggest the Dell XPS range. Both the XPS 13" and 15" laptops are fantastic devices.</comment>


Google swinging axe, cutting its Motorola workforce by 10 percent - <AUTHOR> http://arstechnica.com/business/2013/03/google-swinging-axe-cutting-its-motorola-workforce-by-10-percent/

<comment><USER2> Google never liked the idea of buying company for patents. They always said that the money would be better spent on engineering. Unfortunately the patent war is something no one can escape from.

</comment><comment><USER3> From the article: "seems to reinforce Google's intent when acquiring Motorola in the first place: It's not the people or the products, it's the patents." ... "Along with this round of layoffs, Google is expected to further pare down its Motorola division by selling off its set-top business, which employs an additional 7,000 people."

But "don't be evil"...

<comment><USER4> I used to work at Motorola in India. It seemed like I had around 10 layers of management above me just to reach the India head. I think this is a good move by Google and will only serve to make the company more efficient.

<comment><USER5> I take you were in BTP. We were the neighbours and competitors then and I can't agree more :-)

Used to hear stories during after lunch walks.

@OC: But I do not agree that Google pays those dollars only and only for their patents. If that was the case then I do not think Google is a company that would let Moto bleed before fully closing it. It would rather shut it down in one go - keeping people it wants to retain. They are going to use that good 'ol factory. And as the soupboy said, they are just shaking the belly fat off.</comment></comment></comment>


Show HN: Stopwatch web app for embedding or full-screen display - <AUTHOR> https://github.com/haggen/stopwatch <comment><AUTHOR> Hi. I've been using Notion for all my paperwork and often times I wanted a simple stopwatch for timing my activity. Unfortunately Notion doesn't currently have anything like that but it embeds other URLs quite nicely, and that's when it hit me; I could make something and embed it on my documents.

Fits well also for full-screen display, large or small.</comment>


Show HN: OxJS - a JavaScript Library for Web Applications - <AUTHOR> https://oxjs.org

<comment><USER2> I genuinely think any new JS web application framework needs to answer several key questions on the front page, above the fold - for starters:

\- How is this different to Backbone.js/underscore.js, Spine.js, Sproutcore, etc.?

\- Who's using it? (I realise the list will be short for new projects)

\- Why should I learn a new framework when my other tools seem to be working just fine?

\- What are its dependencies, and what templating libraries does it use/support?

There are probably more (chime in if you have any!) but if you can answer these without resorting to impressive demos or long lists of (expected) features, I'd consider trying it out for a low-risk project and hope it saves me some time/hassle...

<comment><USER3> Hey, thanks for your feedback. You're reading introductory blurb v0.1, so there's definitely room for improvement.

To answer your questions:

\- The core library (Ox.js) is somewhat similar to underscore, while the UI module (Ox.UI) is more like YUI or Ext JS. Unlike backbone, OxJS comes with actual widgets, and it doesn't suggest a strict MVC model. Even though you may end up writing code that follows the MVC paradigm rather closely.

\- So far, the only major project using OxJS is pan.do/ra (<https://pan.do/ra>). But then, OxJS has just been made public.

\- In case the tools you're currently using give you the right abstractions and objects to build big applications (like pan.do/ra), then my suggestion would be to stick with them. Maybe try out OxJS for a small side project.

\- Ox.UI wraps jQuery, but other than that, there are no dependencies. You can bring any third-party templating library, but the idea is that you won't need one. The UI widgets are your "views", and that's it.

</comment></comment><comment><USER4> This library requires an HTML5 compliant browser but does not use HTML5 features? When looking at form elements example [1], I see that new input types (e.g. date, color, range, datalist...) are totally reinvented. What's the point?

[1] <https://oxjs.org/#examples/form_elements/live>

<comment><USER5> I would initially argue compatibility on this one, but it doesn't appear like IE7 is supported (my only non-HTML5 browser I have available at the moment).

Perhaps they intend do go that route at some point?

<comment><USER3> (One of the authors here.) Correct - for input widgets that have a clear equivalent, we're planning to switch to HTML5 form elements eventually.

</comment></comment></comment><comment><USER6> silly op, J and S aren't hexadecimal digits.

Edit: Also, cripes, I get that you're trying to show off your amazing web app framework, but whatever happened to degrading gracefully?

<comment><USER5> Also, the domain doesn't use a 0, as I would have expected.

</comment></comment><comment><USER7> On a 2012 MBA, Chrome 20 and a 30Mbit broadband connection:

Initial loading: 46 requests, 200KB, 4s load

Clicking documentation button: 140 requests, 400kb, ~5s load

The timeline in chrome dev tools for this site is terrifying, all I can say is 'wow'. Worst part is that the vast majority of resources don't appear to have cache headers set.

<comment><USER3> The website you see on oxjs.org is part of OxJS, and what happens when you click the documentation button is that the documentation is generated from the un-cached, un-minified version, live, on the client.

This is really nice if you're using and developing OxJS locally. On oxjs.org, it's definitely a waste of resources, and we will eventually cache the documentation data.

<comment><USER7> I think your missing the point.

As a perspective user for this library, the site being excruciatingly slow leaves a very bad impression of the library itself. Whether it's the libraries fault or just the implementation of this particular site is irrelevant to the impression given.

Using myself as a singular datapoint I spent about 15 minutes messing around on the site. About 60 seconds were spent looking at the actual library while the rest of the time was spent being fascinated by how such a simple site could be so slow. That isn't what you want developers doing when considering using a new library.

<comment><USER3> I don't want to dismiss your comment, but for me, the site is actually quite snappy, given that it's on the front page of HN. So I guess we need more data points...

<comment><USER4> The demo site is also leaking (a lot of) memory. Use the "heap snapshot" in Chrome Dev tools [1] and do some heap comparisons when going from one page to another one (switch between two distinct pages multiple times).

[1] [https://developers.google.com/chrome-developer- tools/docs/he...](https://developers.google.com/chrome-developer- tools/docs/heap-profiling#views_dom)

<comment><USER3> Hey... I assume you're referring to 0xDB.org. That may be a bug in pan.do/ra (the application), rather than in OxJS itself. We fixed some memory leaks recently, but may have missed some.

If you care to provide a few more details (via e-mail, or using our bug tracker), we're definitely going to look into it.

<comment><USER4> No I was refering to your examples. I sent you a mail to show you how to reproduce the problem.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Looks really cool! Load times are really high even on Chrome though.

</comment><comment><USER9> Just a heads up, the live demos took a bit to load (the network here is poor), but there was no indication they were loading. An indicator would be nice.

<comment><USER10> The network here is slow too (Peru) so I'm used to sites loading slowly. However, this site felt extra slow even to me.

</comment></comment><comment><USER11> The interface for annotated examples is quite cool: <http://oxjs.org/#examples>

Looks a bit like Docco: <http://jashkenas.github.com/docco/>

</comment><comment><USER12> Reminded me a lot of uki.js: <http://ukijs.org/>

<comment><USER11> Also, ExtJS comes to mind: <http://www.sencha.com/products/extjs/>

</comment></comment><comment><USER13> Looked nice until I saw this example: <https://0xDB.org/> . I thought the idea of using Windows-style menus and windows in the browser was pretty much dead? I don't like it at all.

<comment><USER14> I think you are missing the point as this framework doesn't intend to handle all those simplified webpages but obviously tries to make complex interfaces possible within web browsers. Taking a well-known GUI metaphor and UI architecture makes sense in this case, IMO.

<comment><USER13> I understand what it tries to do. I just don't consider it worthwhile. Having a menu bar inside the browser chrome along with non-native windows is confusing at best if not outright broken. It tries to emulate a user experience that does not fit the browser and should better be implemented as a native app.

<comment><USER3> I get your point, but I don't think it's necessarily a browser vs. desktop thing, especially since that line is going to blur even more in the future.

I guess it rather depends on the type of application you're building. For anything complex and truly feature-rich (think a good e-mail client, or professional photo/video management software), the big advantage of a menu bar is that it makes functionality discoverable, using a well-known paradigm. Keyboard navigation + shortcuts are a plus, and OxJS provides that.

I definitely see a need for desktop-like JavaScript UI toolkits. But of course, one has to use them wisely. Non-native dialogs have become quite common, and I think they make sense for login, notifications, warnings, and so on. On the other hand, it's unlikely that a whole layer of stacked "windows" (inside a tab, inside a browser window) is a good idea.

EDIT, forgot to mention: The main reason menus or dialogs as elements on a website may seem confusing or broken could be that most existing JavaScript implementations _are_ actually confusing and broken.

</comment></comment></comment></comment><comment><USER15> Don't know if anyone will read this. Requiring to enable JavaScript was expected, but enabling images too? I rarely see web pages that don't even try to work at all with images disabled.

</comment><comment><USER16> a little bit of this, a little bit of that... I can't get the idea behind this "framework"... what do image steganography and web cartography have in common? Should a framework really cover these two orthogonal topics? Besides that, 0x.js could have been a nice name for a js binary manipulation lib.

<comment><USER17> There's a JS library called OxJs[1] for binary manipulation.

[1] <https://gist.github.com/674212>

</comment></comment><comment><USER18> When I saw My.MAGIC_CONSTANT I closed the tab. Too PHPish for me.

<comment><USER19> That was in the example of the documentation frame-work, I believe - <https://oxjs.org/#examples/oxdoc_tutorial> \- while highlighting how commenting / documentation works and the code there was purely example and not at all how the development style for the library is.</comment></comment>


The Point of Tipping (2018) - <AUTHOR> https://medium.com/@koenfucius/the-point-of-tipping-ed7e25104199 <comment><USER2> This is an often-discussed topic on HN, though I think it's been a while since it was a hot topic.

> Both share similar ambitions: lots of customers, who all go home happily

Previous discussions pointed out that the goal of tipped staff is to increase personal income, which is not necessarily aligned with that of the restaurant.

As one example, if there are ways to imply that the wait staff is under high pressure, that might get higher sympathy tips, and lead to customers not returning.

> If customers have the chance to tip, we can assume that they will reward > good service more handsomely than mediocre service.

No, we can't. Many people follow the rule of tip x%, (almost) no matter what. That's how I was taught, and as I recall that's what most people do.

Except assholes who like the power game.

> But experienced waiting staff will be skilful at spotting who is likely to > appreciate superior service (and indeed what superior service means for > individual patrons).

Part of this includes racial discrimination. Quoting [https://rnbphilly.com/2440365/why-black-people-dont- tip/](https://rnbphilly.com/2440365/why-black-people-dont-tip/) "If you're an African-American and you've gone out to eat at a restaurant, odds are you've had to experience the hesitant and uncomfortable service from a presumptuous waiter. This is probably from the unspoken notion that black people don't tip or if they do, the amount is to disrespectful to even be considered."

For that reason alone, I say - get rid of tipping.

> In comparison with a fixed price arrangement, such price discrimination > provides an advantage for all parties.

Then why don't doctors or lawyers take tips?

> Tipping is a pattern of behaviour that is consistent with care and attention > for other parties in a transaction, way beyond narrow selfishness.

BS. It's a tricky cultural minefield. How do you know who to tip? It wasn't until I was in my late 20s that I learned that some people tip hotel housekeepers.

Try tipping your MD and see what happens.</comment>