Ubuntu 13.10 (Saucy Salamander) - <AUTHOR> http://releases.ubuntu.com/saucy/ <comment><USER2> No, it's not released.

The release is imminent. Ubuntu is developed in the open, so you get to see candidate release images on the page linked.

Ubuntu is not released until the release is announced. If you're in doubt, expect to see an announcement on the ubuntu-announce mailing list, or its archive at [https://lists.ubuntu.com/archives/ubuntu- announce/](https://lists.ubuntu.com/archives/ubuntu-announce/)

Also see #ubuntu-release-party on Freenode. At the moment, the topic says "... No, it's not out yet | No, we don't have a set time for release"

(written as of Thu, 17 Oct 2013 10:55:59 +0000; obviously this post will become incorrect as soon as it actually is released)

<comment><USER3> > Ubuntu is developed in the open

Though mostly "open", but not developed entirely in the right free software / open source spirit of community involvement and upstream contributions.

<comment><USER4> There is no "right" free software/open source spirit of community involvement. It begins and ends with the licenses used, full stop. Beyond that no one has any right to say how other people should run their projects. If they don't like it, they can fork it thanks to the licensing, but even when that happens it doesn't mean that the original maintainers were somehow less free software/open source.

<comment><USER5> "Beyond that no one has any right to say how other people should run their projects."

You have a right to say whatever you want.

</comment></comment></comment></comment><comment><USER6> The main feature I'm looking forward to is zswap in kernel 3.11 [1]. Basically instead of swapping, the kernel will first compress infrequently used pages in RAM, which is orders of magnitude faster than swapping to disk.

The practical effect of this is basically the same as a free RAM upgrade!

[1] [https://lwn.net/Articles/537422/](https://lwn.net/Articles/537422/)

<comment><USER7> Mavericks has the same feature, curious they're both shipping at the same time

<comment><USER8> I guess we'll never know if Apple engineers were "inspired" by Zram and Zswap Linux development. I don't think anything like this is available in Freebsd yet.

[http://lists.freebsd.org/pipermail/freebsd- performance/2012-...](http://lists.freebsd.org/pipermail/freebsd- performance/2012-November/004650.html)

<comment><USER9> There have been countless research papers on this topic, so I doubt it -- [http://scholar.google.com/scholar?hl=en&q=dynamic+memory+com...](http://scholar.google.com/scholar?hl=en&q=dynamic+memory+compression+swap&btnG=&as_sdt=1%2C5&as_sdtp=). Not to mention the fact that RAM compression was quite common back in the DOS/Win95 days: [http://oreilly.com/centers/windows/feat/softram/dblscan.html](http://oreilly.com/centers/windows/feat/softram/dblscan.html)

<comment><USER7> Yes, and that's exactly what makes it curious. It's a technology who's always been "known", but no modern operating system has bothered implementing it. Now we got two major OS shipping it at the same time, and I can't even see a correlation with a change of hardware (i.e. i can't see RAM being lately more scarce on PCs or Macs to the point of making this feature more useful than, say, 2 years ago, or 4 years ago, or 6 years ago).

<comment><USER10> I think it's the opposite (that it is at least in part _more_ RAM that is driving this)

If you're going to end up swapping to disk most of the time anyway, the feature doesn't seem to be very useful. But with much faster CPUs, "many core" CPUs where your apps often won't manage to take advantage of the CPUs, and cheap RAM making lots of people buy huge amounts, the "cost" of using compression to offset swapping to disk seems to have dropped substantially, and the chance of avoiding swapping to disk entirely seems to have increased.

</comment></comment></comment></comment></comment></comment><comment><USER11> To be honest "what's new" page looks, well, not very convincing: [https://help.ubuntu.com/13.10/ubuntu-help/whats- new.html](https://help.ubuntu.com/13.10/ubuntu-help/whats-new.html)

<comment><USER12> As someone who doesn't use the dash, I am wondering what's in it for me.

Personally I've tried a few distributions over the last year or so because I've been unhappy with unity but Ubuntu's ease of use still makes me return to it, although right now I'm typing this from a Debian box. I didn't like the dreadful* gnome3 speed so switched to i3. Now if I could just work out how to stop the lazy window focus...

The trouble is is that it looks like a bag of crap right now. The font rendering is all over the place, I'd be embarrassed to use this at home although it is more productive for work than anything else I've used lately.

This might all be "my fault" because I haven't properly installed the right modules or drivers or whatever, or maybe I've not properly set up my Xorg.conf or ~.i3/config but ubuntu always just worked which is why I kept returning to it.

*Possibly because this is a VM running inside windows.

<comment><USER13> What do you mean by 'lazy window focus'?

<comment><USER14> I'm guessing that it has to do with the focus behaviour of the mouse. If that's the case then it would be the 'focus_follows_mouse' variable. It is set thusly:

[http://i3wm.org/docs/userguide.html#_focus_follows_mouse](http://i3wm.org/docs/userguide.html#_focus_follows_mouse)

Then again I may be sadly, sadly mistaken.

</comment></comment></comment></comment><comment><USER15> Web is finally refreshed. And release notes are here: [https://wiki.ubuntu.com/SaucySalamander/ReleaseNotes](https://wiki.ubuntu.com/SaucySalamander/ReleaseNotes)

<comment><USER16> Quite boring for desktop end users. No real changes. That is probably a good thing, since changes in Ubuntu usually means breakage.

<comment><USER15> On Destkop there is reason to upgrade if you are using stock software and kernel (as I'm). Unity in 13.10 feels more responsive than in 13.04 was. Pretty much everything is bumped to newer versions. Even things in VirtualBox work faster now (13.04 was installing 4.2.10, but 13.10 is installing 4.2.16). Dont know what is the reason for speed gains - Kernel in Ubuntu or newer VirtualBox. One thing to do after upgrade is to disable smart scopes. No reason to share search queries with Canonical. I was hoping that 13.10 will solve my sound problems, but no luck. Just like in 13.04 i hear crackling noises. But those are specifics of my laptop.

<comment><USER17> VirtulBox offers a repo for Ubuntu.

        deb http://download.virtualbox.org/virtualbox/debian raring contrib non-free

        $ VirtualBox --help
        Oracle VM VirtualBox Manager 4.2.18

It also carries virtualbox-4.3 if you're feeling adventurous.

<comment><USER15> Good to know. I will stick with 4.2 branch for now. :) Need to wait for at least 4.3.1. Too many things changed in 4.3.

</comment></comment></comment></comment></comment><comment><USER18> I upgraded my 13.04 system this morning and now it is unfortunately unusable. Any time I try to switch users, it consistently brings me to a black screen with a frozen mouse pointer that I cannot get out of, even when hitting Ctrl+Alt+F#. I'm downloading the iso now to try a fresh install.

<comment><USER19> I have always found that continous upgrade eventually break the system. A clean install should be the recommended choice.

<comment><USER20> That's just beyond retarded. I weep when people have been conditioned by Canonical (and Microsoft) to accept this.

<comment><USER19> It's not all Canonical's faults. A highly customized install with a few extra libs here and there and some proprietary softare can easily wreck havoc on a system.

<comment><USER21> I had a continuous Arch install for 4 years without massive breakage through half a dozen major switches, including the fs layout and the systemd transition.

I just upgraded to an SSD and decided to clean slate rather than carry extra fs creep baggage that isn't linked to a package to remove, but I still have that partition around, and I'm pretty sure if I upgraded it it might still boot.

It is why I like rolling releases - rather than have catastrophic breakage every half year, you continuously migrate upwards. It means occasionally you need to pull up a web browser to see why your desktop is missing, but its better than doing a dist-upgrade and getting an unbootable system.

</comment></comment></comment></comment></comment><comment><USER22> Ubuntu is not going the direction I want for "my Linux. 1\. Mir is a huge mistake (My opinion) 2\. Unity (Well I am tiled window manager (i3) guy now so all DEs) I really don't like the flow of OS X and it is starting to really look more like OS X. DEFAULT an easily be changed. 3\. Lack of community between the Linux ecosystem. Millions is spent on Ubuntu but seems like little makes it upstream. 4\. Software Center. They need to just take OpenSUSE's one- click model and get rid of their current model of App Store and the horrible app model. (My model) 5\. Their Developer SDK to "Write once, run everywhere." If I had a nickel for every time that was promised (Java looking at you) Once again OpenSUSE Build Service is the most underused Linux tool in the last decade [https://build.opensuse.org/](https://build.opensuse.org/) Build it there and also build packages for other Distros also.

Now after my list I have Ubuntu running my home server right now and well it is solid. I use OpenSUSE at work and Arch Linux on my tiny laptop and like those experiences more.

People need to look at OpenSUSE again!

<comment><USER23> > People need to look at OpenSUSE again!

Isn't it really beautiful that we _actually can_ do this, now? We can switch platforms within the same day - without real hassle or pain.

I mean tell a Windows or Apple user that they need to look at something else, and guess what their answer will be...

<comment><USER24> My guess is "why? everything is working".

<comment> jon-wood Having spent yesterday setting up a new laptop to dual boot Windows and Ubuntu, Ubuntu works far, far better.

Windows needed drivers installing for _everything_ from the network interface up. And I'm still having troubles with the network - I can use wifi fine, but the wired connection refuses to pick up an IP with DHCP.

Ubuntu on the other hand needed a single change to the boot parameters to make screen brightness adjustments work. (Windows also needed a driver for this). Otherwise it works perfectly.

<comment><USER24> Are you saying Ubuntu has better driver support than Windows?

<comment><USER25> Yes.

A million times yes.

About a month ago now, my laptop's windows install decided to take a dive so I reinstalled windows and took it as an opportunity to dual boot ubuntu as well. Ubuntu worked out of the box. I'm still finding things that need drivers a month later in windows.

<comment><USER24> I don't think this opinion can be based on personal experience. One or two computers, especially developers machines are a sample size too small. Also, I've had an opposite experiences. Not to mention that what we most notice is divergence from the past trend. Regardless, I don't think many hardware manufacturers prioritize Linux for their deployment. I can see, however, that since the latest Ubuntu image is at most 6 months old, it can have more built in, while Windows 7 is many years old now, tends to require 'Windows Update' to get all the latest drivers. Overall, however, I think Windows gets way more driver support just because of the market. I don't know how you can argue that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> I'll stick to 12.04 LTS for desktop and server and wait for 14.04 LTS for desktop and server. 9 months support made *.10 releases less exciting, for me somehow.

<comment><USER27> For my workstation as a web developer, I use Ubuntu with LXDE running the latest releases as it's always nice to have the latest software, if I had to support users I would use 12.04 though.

Servers is quite nice with 12.04 though, and that's what they are designed for.

<comment><USER28> How does Ubuntu with LXDE compare with Xubuntu (another lightweight desktop environment)?

<comment><USER27> To preface - The PCs I work on at home and work are fairly decent - Intel i7 Haswell, 16GB of RAM, 256GB SSD, so it's not like my using it because my PC is old.

LXDE has some usability issues (such as random glitches, which seems to be mostly resolved since 13.04) over XFCE or other desktop environments but I find it quite a joy to use, especially as I work on a single monitor but have multiple workspaces which I can tab through using alt+scroll, or using scroll on the wallpaper - for example I have development (sublime/chrome) on workspace 1, emails on workspace 2, testing on workspace 3 (which runs in the background and is handy to run).

LXDE seems to be the only desktop environment that doesn't lag when I have quite a few things open and going off at once, but I need to re-experiment with XFCE now 13.10 has come out to give it a proper go.

<comment><USER29> How about a tiling manager like i3 or awesome?

</comment></comment></comment></comment></comment><comment><USER30> So, a user (zeis, don't take it personally) publishes a link to the release of Ubuntu 13.10, but he's actually wrong... Despite this, his post gets 188 points of karma (as of know). Now that's what I call a karma system that doesn't work well.

I should just post "Ubuntu 14.04 (Taunting Tiger) released" and get my own share of karma...

<comment><USER31> Same thing happened on /r/ubuntu as well. It's just plain annoying. This way the real discussion about the new Ubuntu version goes down in the noise of users stating that Saucy hasn't been released yet or doesn't even get started.

</comment></comment><comment><USER32> Can someone explain to me what's different about the Mac and PC versions of 64 bit Ubuntu? I've seen these Mac versions show up lately but what's in them? I can't find the data clearly on the website. Is it just different drivers and defaults?

<comment><USER33> "Unfortunately, even though Macs use a variant of EFI (an earlier version of what's now called UEFI), they apparently can't cope with multi-catalog CDs, and simply refuse to boot them. This left us in rather a quandary: we needed to support UEFI systems, but we didn't want to drop support for Macs either.

I therefore created the amd64+mac CD images, _which are exactly the same as the amd64 images except that they only support BIOS booting_. Macs are happy to boot these in their BIOS emulation mode." [1]

TL;DR There is no difference... Normal CDs just won't boot on Macs.

[1] [http://askubuntu.com/questions/37999/what-is-different- about...](http://askubuntu.com/questions/37999/what-is-different-about-the- mac-iso-image)

<comment><USER32> OHHHHHHH bootable. I'd never actually tried that as I've always installed in a VM. Now that makes sense as to why the Mac version wouldn't work when I tried it in a VM.

</comment></comment></comment><comment><USER34> [Related] Kubuntu Linux 13.10 Released [https://news.ycombinator.com/item?id=6565146](https://news.ycombinator.com/item?id=6565146)

</comment><comment><USER35> Same day as Windows 8.1 hits the market. [1]

Wonder which one will get most press coverage :)

[1] [http://www.engadget.com/2013/10/17/windows-8-1-now- available...](http://www.engadget.com/2013/10/17/windows-8-1-now-available-to- download/?ncid=rss_truncated)

</comment><comment><USER36> I was sad to see that the option to swap caps lock and escape was gone (I think I'm blaming GNOME here). But on the other hand I ought to be doing that programaticly in my setup script, so I finally just got around to adding that there.

EDIT: I almost decided to switch to Xubuntu, but then I installed xfce, tried it out, and found that they didn't provide that option either. Besides, using xmonad with xfce is much more complicated than with GNOME.

<comment><USER37> I call out to setxkbmap to get this done. It should work with any window manager and desktop environment.[0]

      setxkbmap -option ctrl:nocaps

[0] [https://gist.github.com/Spoygg/3122226](https://gist.github.com/Spoygg/3122226)

<comment><USER38> Last time I was using Ubuntu+Unity as my main desktop (11.xx), I used `xmodmap` to swap my keys, and found that every so often it'd be reverted. Have you experienced similar problems with this technique?

<comment><USER39> IIRC I didn't finding any easy way of making xmodmap settings persist over reboot, so I just took had a script that runs "xmodmap ~/.Xmodmap" run at startup.

(Of course then I switched to xfce on my laptop, which seems to run its own xmodmap command after its run startup scripts or something which overrides them, which is kinda annoying, haven't found a nice way to get around that).

<comment><USER40> Try putting your `xmodmap' command in `~/.xinitrc'. It gets read whenever the X server starts (`startx').

<comment><USER39> Thanks, but Xfce's startup applications list (which is just a frontend for ~/.config/autostart) is already executed after the X server starts, and after .xinitrc.

(Apologies if me saying 'runs at startup' was misleading -- obviously if I had tried to do it from a script that ran on boot, before X starts (rather than on session start) it could never have worked in the first place!).

Edit: now I've started thinking about it again, I've changed the autostart script to call another which sleeps for 10s before xmodmap, which seems to have fixed the problem.

</comment></comment></comment></comment></comment></comment><comment><USER41> Releases link is live:

[http://releases.ubuntu.com/saucy/](http://releases.ubuntu.com/saucy/)

<comment><USER42> Xubuntu: [http://cdimage.ubuntu.com/xubuntu/releases/13.10/release/](http://cdimage.ubuntu.com/xubuntu/releases/13.10/release/)

<comment><USER43> ubuntu-gnome [http://cdimage.ubuntu.com/ubuntu- gnome/releases/13.10/releas...](http://cdimage.ubuntu.com/ubuntu- gnome/releases/13.10/release/)

</comment></comment></comment><comment><USER44> The beta of this has been smooth for me. I had no problems doing the upgrade (but I have used Ubuntu for a while). I am enjoying the newer versions of the kernel and some packages that are key for me. If you use Unity, the dash feels faster. I'm more pleased with this release than several past ones.

</comment><comment><USER45> Is it shipped with Mir?

Their what's new page is kinda succinct: [https://help.ubuntu.com/13.10/ubuntu-help/whats- new.html](https://help.ubuntu.com/13.10/ubuntu-help/whats-new.html)

<comment><USER22> Mir is not ready. The next release is suppose to be a LTS which is scary.

My prediction: LTS will be 14.10 and Mir will be default in 14.04.

<comment><USER46> Usually the .04 release is LTS every two years, if they change that it will be a bit confusing, hope they don' do that.

</comment></comment></comment><comment><USER47> Let me guess. Postgres 9.1, Ruby 1.9.1, PHP 5.3.11, a lot of extremely old packages... Please tell me if I'm wrong!

I'm really tired of the software world moving forward and Ubuntu turning into Debian Woody.

<comment><USER48> The release notes actually say Apache 2.4 and PHP 5.5[1], no mention of Ruby or Postgres though. Postgres runs its own Debian repo[2], by the way :)

[1] [https://wiki.ubuntu.com/SaucySalamander/ReleaseNotes](https://wiki.ubuntu.com/SaucySalamander/ReleaseNotes)

[2] [http://www.postgresql.org/download/linux/debian/](http://www.postgresql.org/download/linux/debian/)

<comment><USER49> That repo needs a bit of tweaking though: [https://wiki.postgresql.org/wiki/Apt/FAQ#I_am_using_a_non- LT...](https://wiki.postgresql.org/wiki/Apt/FAQ#I_am_using_a_non- LTS_release_of_Ubuntu)

</comment></comment></comment><comment><USER50> I'm installing it as a chroot on my Chromebook, I hope this goes well. Otherwise its sudo delete-chroot unity.

</comment><comment><USER51> Final Release Link:

[http://releases.ubuntu.com/13.10/](http://releases.ubuntu.com/13.10/)

MD5 CheckSums:

[http://releases.ubuntu.com/13.10/MD5SUMS](http://releases.ubuntu.com/13.10/MD5SUMS)

<comment><USER52> Where can the release notes be found ?

<comment><USER51> [https://wiki.ubuntu.com/SaucySalamander/ReleaseNotes](https://wiki.ubuntu.com/SaucySalamander/ReleaseNotes)

</comment></comment></comment><comment><USER53> Any one managed to get Ubuntu 13.10 on mac book air with Haswell processor ? Any better result for the graphics support on haswell ? I was hoping to buy one of these if I could run ubuntu 13.10 without much problems.

</comment><comment><USER54> a warning for people using Anthy or other IME's : 13.10 replaces some stuff in the keyboard mechanisms, and the dash eats up a lot more keyboard shortcuts (I can't even get Alt+Shift to work! Alt+Shift!). It's frustrating, I somehow got two random keybindings to work and somehow activated ibus (not in the conventional fashion, which no longer works), but I don't know what I did so can't document it.

Frustrating how they can break such an important thing (keyboards)

</comment><comment><USER55> Does this support touch input well? What would the experience be like if you were to install it on a Windows 8 tablet, like Acer Iconia W3, Surface Pro or others?

</comment><comment><USER56> Here's some ideas for names for the next release:

Tenacious Turkey

Threadbare Thrush

Tailles Tenrec

Tailful Tenrec

Thorny Thorny Devil

Timely Tarantula

Titilating Titmouse

</comment><comment><USER57> ubuntu-gnome 13.10 now comes with gnome 3.8, I will give it a try.

<comment><USER49> Which changes shortcuts and removes some keyboard layout customisations, sigh.

<comment><USER58> and that sucks! KDE and Razor-Qt FTW.

</comment></comment></comment><comment><USER59> "Ubuntu 13.10 will only be supported for 9 months. Non-LTS releases prior to Ubuntu 13.04 were supported for 18 months. "

</comment><comment><USER60> lol Saucy Salamander</comment>


To ECC or Not to ECC - <AUTHOR> http://blog.codinghorror.com/to-ecc-or-not-to-ecc/ <comment><USER3> Please note that the main purpose of ECC is not to reduce RAM error rate and make it look more reliable, but to help the system stop the process when an unrecoverable memory error occurs as opposed to propagating it and resulting in unpredictable outcomes. The change in the effect of failure is what matters most, not the probability of it. Without ECC, there's often no clear way to realize that the result of a computation is valid or garbage and should be discarded.

(Of course, in extreme scenarios, like at Google scale, even ECC can fail to fail due to multibit errors, but in almost all non-pathological scenarios, SECDED[1] is enough to catch all erroneous cases.)

[1]: [http://cr.yp.to/hardware/ecc.html](http://cr.yp.to/hardware/ecc.html)

<comment><USER4> Exactly, you want to know when the error is due to memory.

Intel deciding that consumers (including those buying Haswell-E CPUS) do not need ECC really irks me. Textbook market segmentation from a near monopoly.

Currently you can not have your cake and eat it:

You cannot have the best single-thread performance (offered by overclocking Haswell-E series or Skylake 6700k) and have ECC.

So if one is building the ultimate workstation, you have a hard choice, do you go with X99 chipset(no ECC but can overclock) or do you go to the server motherboards with C610 chipsets which are quite limited as far as consumer interests are.

Interesting are the Intel mobile Xeons which now provide a venue for ECC on a laptop.

<comment><USER5> Textbook market segmentation? Xeons have ECC, larger thermal envelope, and some additional testing. Sure they are identical silicon.

Generally if you are willing to give up a single clock bin in exchange for ECC you end up with a cheaper (and cooler) system that's more reliable. Generally if you want the cheapest 4c/8t CPU it's a xeon, NOT an i7.

I don't feel particularly artifically segmented. Additionally the high end desktop motherboards tend to be more expensive than the server boards. Often I find a nice server board at $180 and the nice desktop boards are often another $100. Sure they are marketed to gamers, but I really just want a nice reliable power and cooling and it's not clear which of the cheaper desktop boards are really going to last 24/7 for 5 years.

Today I'd buy the E3-1270 for $339 over the $350 i7-6700k. Keep in mind the k chips are a premium _AND_ they don't come with a fan like the non-k chips do. Sure it's 3.6 - 4 GHz instead of 4.0 to 4.2 GHz, not a particularly noticeable difference, especially since that both thermally throttle as needed.

I think ECC is well justified because it doesn't just detect dimm errorrs, but also motherboard errors, cpu errors, and socket (dimm or cpu) errors. If a node randomly crashes/hangs it's very hard to track down why... unless you have ECC and often will help you pin it down. I'd much rather see something strange show up in mcelog than wait for a hang, or worse a corruption.

Most of my "ecc" errors have actually been motherboard, socket, or (in AMDs case) CPUs. When I look at larger samples some dimms are WAY less reliable than others. Strongly implying it's not high energy particles, but something out of spec.

<comment><USER6> If it weren't a market segmentation strategy, just like limiting the RAM capacity, then there'd be equivalent 'server' chips for most current 'desktop' feature sets and vice versa. However that is clearly not the case, both in my own shopping experience and in the experience of Jeff Atwood (this is in fact something he complains about in this very article).

ECC would require running and connecting a few more traces, but that would /surely/ be offset by not having to create as many layouts or source/stock as many parts. In the past AMD used to have a competing/selling point of /all/ of their CPUs supporting ECC ram. Today that is not the case, as they too have mirrored (colluded?) Intel's market segmentation strategy.

</comment></comment></comment></comment><comment><USER7> I know that Jeff is a demigod to some people, but I interpret this article as: "As a software guy, I don't really understand why I need this fancy hardware, so this can't be important". IMO he's wrong.

The margins between working and non-working DRAM these days are extremely small. E.g. Rowhammer demonstrated that even user-space programs could readily obliterate main memory, without even trying very hard to do so.[1]

But, maybe in this case he's right. It's not like "open source Internet forum software" is anything that's mission critical. If there's an occasional garble in a character or two, will the latte-swilling hipsters even notice? :-)

Just like the original Google servers he points to. Who cares if they occasionally screwed up in reporting search results, because they didn't have ECC memory. Overall the experience was still 100x better than using something like Altavista.

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

<comment><USER8> What Jeff is trying to say is: if ECC is so desperately needed to prevent memory errors that are supposedly happening all the time, why isn't ECC in every computer everywhere?

<comment><USER7> That question is very easily answered.

The average consumer knows that more "jigabits" are better and more "jigahertz" is better (see Intel NetBurst for how badly that can go wrong).

See a link elsewhere in this tread, someone posted a memory error presentation that talked about FIT, failures in time. But the average consumer doesn't know what that is.

Hence we get a race to the bottom. PC assemblers are willing to sell their mothers into slavery if it can save them $0.05 in build cost. ECC doesn't fit into that narrative.

BTW ECC is "in every computer" nowadays. As yet another poster mentioned, Intel CPUs use ECC internally to protect their caches.

<comment> bro-stick There's at least two broad classes of error correction and detection: at-rest and in-flight.

Each storage hierarchy component (RAM, SSD, CPU caches, etc.) and interconnection (chip-to-chip, add-on card, cable to another box) needs to be looked at for risk of nondetection/data loss based on risk consequences of the intended use.

For example, billing database servers for a successful company probably should use RAID array/SAN/NAS (say RAID6 or ZFS with RAIDZ3) and Chipkill ECC memory on an enterprise-class box with decent vendor support.

CDN boxes for serving free, static content can be almost anything.

For larger shops, they have the economies of scale to ask from OEMs and ODMs to build custom boxes that are more optimized than COTS gear at Dell, HP or CDW.

When Jeff's venture takes off, they might explore gear customized for running Ruby and/or partnering with 37signals and the like to have OEMs/ODMs folks develop better performing gear and open source it like Facebook has.

</comment></comment></comment></comment><comment><USER9> We once had a new server with all new hardware which had weird problems and kept crashing mysteriously. Memory tests showed no errors, so we were all tearing our hair out. We took the server offline and set it to test continously – still no errors. After running Memtest86 on _nothing but test #4, for about a day or so_ – _then_ a few memory errors showed up. Replaced memory, problem gone, server started working.

Memory errors are _especially_ insidious compared to how common they are. ECC is worth it.

<comment><USER10> i wouldn't even call a machine without ecc a server or workstation. more like a consumer device that's been given a job it can't do.

<comment><USER9> This _was_ many, maybe more than 10, years ago.

</comment></comment></comment><comment><USER11> I tried to catch soft errors for about a year on a couple of Linux boxes I had. They were both desktop form factor machines, one being used as a home server and one as a desktop at work.

I had a background process [1] on each that simply allocated a 128 MB buffer, filled it with a known data pattern, and then went into an infinite loop that slept a while, woke up and checked the integrity of the buffer, and if any of the data had changed logged the change and restored the data pattern.

Based on the error rates I'd seen published, I expected to catch a few errors. For example, using the rate that Tomte's comment [2] cites I think I'd expect about 6 errors a year.

I never caught an error.

I also have two desktops with ECC (a 2008 Mac Pro and a 2009 Mac Pro). I've used the 2008 Mac Pro every working day since I bought it in 2008, and the 2009 Mac Pro every day since I bought it in 2009. Neither of them has ever reported correcting an error.

I have no idea why I have not been able to see an error.

[1] [http://pastebin.com/Bv56kVwC](http://pastebin.com/Bv56kVwC)

[2] [https://news.ycombinator.com/item?id=10600308](https://news.ycombinator.com/item?id=10600308)

<comment> Ono-Sendai Did you check the resulting (dis)assembly? If you compile with optimisations the reading (and maybe writing) to the RAM buffer may be optimised away.

</comment></comment><comment><USER12> Soft errors are fairly common; in fact it allows for problems in DNS resolution such as Bitsquatting: [https://www.defcon.org/images/defcon-19/dc-19-presentations/...](https://www.defcon.org/images/defcon-19/dc-19-presentations/Dinaburg/DEFCON-19-Dinaburg- Bit-Squatting.pdf)

Anyone who has bought a popular bitsquatted domain name can attest to this.

<comment><USER13> Also errors in packets signatures from TLS handshakes ([http://cryptologie.net/article/294/factoring-rsa-keys- with-t...](http://cryptologie.net/article/294/factoring-rsa-keys-with-tls- perfect-forward-secrecy/))

And I'm sure there are many other vectors of attacks using this flaw.

</comment></comment><comment><USER14> IEC 61508 documents an estimate of 700 to 1200 fit/MBit (fit = "failure in time"; per 10e-9 hours of operation) and gives the following sources:

a) Altitude SEE Test European Platform (ASTEP) and First Results in CMOS 130 nm SRAM. J-L. Autran, P. Roche, C. Sudre et al. Nuclear Science, IEEE Transactions on Volume 54, Issue 4, Aug. 2007 Page(s):1002 - <USER2>

b) Radiation-Induced Soft Errors in Advanced Semiconductor Technologies, Robert C. Baumann, Fellow, IEEE, IEEE TRANSACTIONS ON DEVICE AND MATERIALS RELIABILITY, VOL. 5, NO. 3, SEPTEMBER 2005

c) Soft errors' impact on system reliability, Ritesh Mastipuram and Edwin C Wee, Cypress Semiconductor, 2004

d) Trends And Challenges In VLSI Circuit Reliability, C. Costantinescu, Intel, 2003, IEEE Computer Society

e) Basic mechanisms and modeling of single-event upset in digital microelectronics, P. E. Dodd and L. W. Massengill, IEEE Trans. Nucl. Sci., vol. 50, no. 3, pp. 583–602, Jun. 2003.

f) Destructive single-event effects in semiconductor devices and ICs, F. W. Sexton, IEEE Trans. Nucl. Sci., vol. 50, no. 3, pp. 603–621, Jun. 2003.

g) Coming Challenges in Microarchitecture and Architecture, Ronen, Mendelson, Proceedings of the IEEE, Volume 89, Issue 3, Mar 2001 Page(s):325 – 340

h) Scaling and Technology Issues for Soft Error Rates, A Johnston, 4th Annual Research Conference on Reliability Stanford University, October 2000

i) International Technology Roadmap for Semiconductors (ITRS), several papers.

If that's correct, the math is simple: you have bit flips in your PC about once a day.

It's just that (a) you often won't notice those transient errors (one pixel in your multi-megapixel photo is one bit off) and (b) a lot of your RAM is probably unused.

<comment><USER3> > _It 's just that (a) you often won't notice those transient errors (one > pixel in your multi-megapixel photo is one bit off) and (b) a lot of your > RAM is probably unused._

Also, most modern processors use ECC for their caches (even when the main memory is non-ECC) and they serve the vast majority of memory requests, so it is unlikely that intermediate values in a tight computation are affected by non-ECC RAM. That adds to the "silentness" aspect of the bit flip in consumer systems.

</comment></comment><comment><USER15> These things do happen with a reasonable amount of frequency. I used to work at a division of a major memory manufacturer that dealt with writing tests to find these DIMMs that exhibited these sorts of failures - the semiconductor industry calls them "variable retention transfers". (Aside: numerous PhDs in the field of semiconductor physics have built prosperous careers trying to understand why these soft failures happen. Short answer: we have some theories, but we don't really know.) It was provably worth millions of dollars to be able to screen for this sort of phenomenon, because a Google or an Apple or an IBM would return a whole manufacturing lot of your bleeding edge, high- margin DIMMs if they found one bit error in one chip of one lot. Each lot was shipping for millions and millions of dollars.

</comment><comment><USER16> Anyone who've managed even a modest amount of servers with ECC RAM for a reasonable amount of time has surely seen ECC events in their hardware logs. Most of these are one-time errors that never happen again on the same server, ever.

Without ECC these errors would have unknown consequences. They could happen in some unused region of memory, or they could happen in a dirty page in the filesystem cache. It's not fun to discover that your filesystem has been silently corrupted a unknown time after the fact.

Maybe Google doesn't need ECC. Their data is duplicated across several machines and it's extremely unlikely that a few corrupt servers would lead to any data loss.

However, on a smaller scale (and just like RAID) it's cheaper to have ECC than add more servers for extra redundancy.

</comment><comment><USER17> Or he could have waited a few months and gotten ECC anyway: [http://ark.intel.com/products/88171/Intel-Xeon- Processor-E3-...](http://ark.intel.com/products/88171/Intel-Xeon- Processor-E3-1280-v5-8M-Cache-3_70-GHz)

<comment><USER18> Interestingly, the only vendor which sells 16GB unbuffered ECC DDR4 DIMMs seems to be Crucial: [http://www.crucial.com/usa/en/ct16g4wfd8213](http://www.crucial.com/usa/en/ct16g4wfd8213)

<comment><USER17> E3 DIMMs have always been rare and usually expensive; I wish Intel would enable regular registered DIMMs.

<comment><USER18> The funny thing is that they still so expensive when the x8 chips are so cheap.

</comment></comment></comment></comment><comment><USER19> What he's saying is essentially "The code I write/the platform I choose scales poorly over multiple cores. Therefor I decide to blame the hardware, and skip features that are good for me"

People need to adapt to a world where we have more cores instead of faster execution per core. You can't compare late 90's growth in execution speed per core with the situation we have today.

Write software for an environment where the number of cores scale, instead of an environment where the execution speed of a single core is more important.

<comment><USER20> > What he's saying is essentially "The code I write/the platform I choose > scales poorly over multiple cores. Therefor I decide to blame the hardware, > and skip features that are good for me"

Is that so bad? He's writing and hosting the code, and he's paying the bill to do it. Seems to me he should be able to pick how to do it.

</comment></comment><comment><USER21> This cannot possibly be right. There was a DC21 talk regarding DNS request misfires due to bit flips in non-ECC DRAM, and the researcher was able to collect a surprisingly large number of requests on the basis of this.

Edit: found it: [https://www.youtube.com/watch?v=ZPbyDSvGasw](https://www.youtube.com/watch?v=ZPbyDSvGasw)

<comment><USER20> Importantly, those DNS packets go through a number of systems that are not clients or servers. Wifi, microwave antennae, undersea cables, consumer routers, unpowered hubs, you name it. It's hard to know whether these bit flips are actually coming from cosmic rays or EM interference or rare decompression bugs.

</comment></comment><comment><USER22> If soft errors are rare, parity checking, without correction, might be more useful. It's better to have a server fail hard than make errors. In a "cloud" service, the systems are already in place to handle a hard failure and move the load to another machine. Unambiguous hardware failure detection is exactly what you want.

<comment><USER3> In practice, you basically get one-bit error correction 'for free' when you have enough redundancy to detect two-bit soft errors. Simple parity can only detect one bit flip, so if you want to catch two-bit errors, you might as well correct one-bit errors you find on your way at no extra cost.

</comment></comment><comment><USER23> I don't think that data corruption was a huge issue for Google back then (really early on). Corrupt data? Big whoop. Re-index the internet in another X hours, and it's gone. I doubt they had much persistent storage as most of their data was transient and well, the Internet.

Also, I still see "fire hazard" when I look at the early Google racks. No idea how Equinix let them get away with it. Too much ivory tower going on there. Not enough "you know we're liable if we burn down the colo with that crap, right?"

<comment><USER24> There is no extra chance of a short circuit before the power supply. After the power supply the power is limited, either by explicit current limiting or just because they are switching power supplies where transformer saturation limits the power.

So you could have a PCB fire, but PCBs are made to be flame retardant. You could have a wire insulation fire, but the amount of material would be so low that it wouldn't be able to start a fire anywhere else.

So I am basically saying there isn't really anything there that could sustain a fire and that there isn't a lot of energy to start ignition in the first place.

<comment><USER23> Cardboard breaks down over time. It turns into particulate matter that goes airborne into really hot server intakes and comes out tiny little burning embers.

If it didn't burn down Google's stuff, it could have burned down other people's gear. I have decades of experience here; I'm not an ivory tower nerd. Any datacenter/colo provider worth a salt will jump on you immediately for having cardboard in your environment. DRT makes you unbox everything outside the various colos and won't even let cardboard enter.

<comment><USER24> >comes out tiny little burning embers.

The auto-ignition temp of paper is over 200C. The maximum junction temperature of most electronics is somewhere around 100C. This this literally could not of ever happened unless the equipment was already on fire.

I'll leave the idea that cardboard breaks down fast enough to be noticed over the life of a server to someone more knowledgeable. I note that there was no mention of cardboard in the article.

<comment><USER23> The motherboards were placed directly on cardboard trays. It says that in the article.

</comment></comment></comment></comment></comment><comment><USER25> The article is wrong.

The Xeon E3-1270 v5 goes from 3.6 to 4.0 GHz and only costs 10% more than the i7-6700 (3.4-4.0 GHz)

Also, the Xeon E3-1230 v5 goes from 3.4 to 3.8 GHz (same base clock) and costs less than the Core i7-6700.

In general, you should never buy non-Xeon CPUs if you have the choice, both for desktop and for servers, since ECC memory is essential if you don't want to have a significant chance of having to replace your RAM after discovering mysterious problems with your system.

</comment><comment><USER26> Isn't it simple enough calculation:

Will someone die if the data gets corrupted? No - then no ECC should be enough. And you should have checksums everywhere anyway.

<comment><USER27> where do you create that checksum? If its on a computer without ECC, you will just checksum the data including the error, then write that data including the error to disk.

What happens to the data after you have read it to memory and successfully verified the checksum? You probably process it in memory, and have no idea afterwards if the changes are due to your code, or because of errors.

Of course you can now propose to also checksum and check the data while it is in memory. Which is basically what ECC does, in hardware, for cheap, requiring no CPU cycles.</comment></comment>


How the Banks Bought Bitcoin – The Lightning Network - <AUTHOR> https://www.youtube.com/watch?time_continue=550&v=UYHFrf5ci_g <comment><AUTHOR> A quote from the video:

"The lightning hubs will require they be setup for financial regulation and reporting laws. Require massive amounts of liquidity to keep well funded open channels. Offer fraud departments to watch the block chain constantly and prevent theft, all while taking small fees for every transaction you route through them. Does this system sound familiar? Just replace the term 'open channel' with 'checking account'."

Anyone with more intimate understanding of the lightning network agree with these 'requirements' ?</comment>


Show HN: Talent Agency Platform for Software Engineers - <AUTHOR> http://fullJoin.io <comment><AUTHOR> We want to be a full fledged talent agency for software engineers, and the first thing we're making better for engineers is the interview process. We help you design your own interview process to best show off your skills.

One of the things that make tech interviews so nondeterministic is that it's like taking a test where the teacher never told you what to study. With us you'll know exactly what and how many steps there are in every company's process, and what to prepare for - from the beginning.

A big part of this is negotiating with companies to create personalized technical interviews. Maybe you're an expert in Kafka, so you can give a small presentation on how they could be using it and do a Q&A with the team. Or you're good at getting up to speed quickly and want to show that off in some pair programming. We want creative processes that don't leave you feeling like you just went through a meat grinder.

Companies also want to test your knowledge in some way, so we work with them to get you a guide of what to prepare for. But no being peppered with random CS questions - you'll have a company specific guide on what is important to know for the role, and what you can expect and prepare for in the interview.

This has gotten a little long-winded, but would be interested in talking about what else sets us apart from Triplebyte / Hired, or anything else that comes up</comment>


Advice on web-app credit card processing and invoicing? - <AUTHOR>

I am developing a niche business web-application targeted at machine shops with fewer than 10 employees. I am charging a flat-rate of $5/day for the web application with an unlimited number of users. Customers pay up front for however many days they want. They can purchase additional days whenever they want. There is no automatic recurring billing -- the web app is simply 'paused' when it runs out of days.
What is the best way to go about handling credit/debit card processing and invoicing for this?
I'm playing around with using Paypal Website Payments Standard with encrypted 'buy it now' buttons and Instant Payment Notification (IPN). However, the user-experience for credit-card payments with PayPal is lacking. Specifically, Paypal does not auto-redirect users back to my website if they use a credit card (auto-redirect works only with PayPal payments). What other payment processing solutions should I be looking at?
Unforunately, Google Checkout seems to be behind PayPal in terms of multiple-currency support.
Thanks in advance! <comment><USER2> Here are some news.yc discussions about this topic:

<http://news.ycombinator.com/item?id=5303>

<http://news.ycombinator.com/item?id=12010>

<http://news.ycombinator.com/item?id=33322>

Perhaps we need the ability to tag discussions?

<comment><USER3> Definitely - I put that in feature requests a couple times, but it vanished in the traffic there. It would be a huge value to all the users as you could focus on the topic your interested in, and hopefully some of the great comments would not get lost in time.

PG: If you're interested, we have an excellent model for classification developed for <http://www.streamfocus.com> that is simple and powerful that we could let you (but only you) have gratis (written in lisp of course with a mysql back end - cached with hash tables)

<comment><USER4> Am I alone in finding tags to be solving the wrong problem? The problem tags solve is, "How do I let contributors do extra work adding meta-data to their contributions?"

Making search that works is the right solution to the right problem, in every single case where tags have been used that I'm aware of. Oh, actually, that's not true...flickr tags are extremely useful (when used by large numbers of people to indicate a particular theme or event). But tags at News.YC or at Reddit would be a pointless complexification of the submission and browsing experience. Give me nicely working search (which Reddit didn't have last time I tried it, and News.YC doesn't even try), and I'll never want for tags.

In short, I'm very strongly in the camp (assuming I'm not actually alone) that believes tags would be bad for News.YC usability. Search, on the other hand, would be fantastic.

<comment><USER3> The problem with text match search is that it misses on a step removed concept search. I'm advocating classification with hierarchy, so that if you were to click on Legal, it would give information on lawyers, on trade marks, on patenting, etc. I think the answer is to limit the hierarchy to startup related issues, and then users select from this list to classify posts if they want to. Then we can have a very helpful semantic tool for finding things that search just cant.

<comment><USER4> Yep, I know the reasons for tags. I still think they're a truly bad idea in this context.

A limited selection of tags solves one problem, but then creates new agonizing moments for contributors where they try to figure out whether they ought to select one option or twelve. And a few users, the very ones I probably least want to pay attention to, will assume that their latest blog post about their new GTD web application crosses boundaries in unique ways and would be relevant for all fifty-eight tags. It takes a strikingly small number of bad results to make tags worthless...and I've seen very few occasions where the tag features of a website are not just that.

I could be wrong...but I'd like to see an example of a site in the vein of News.YC that uses tags effectively, before I'd even think about admitting it.

<comment><USER3> Thats a good point. If you remember the good old days, Yahoo was a hierarchy of classified links administered/edited very carefully by humans after user submissions. You would need to have that layer of edit control by the system admins to prevent abuse, and I'm guessing the resources for that are not here.

(I sure wouldn't post my GTD web app in non-relevant classes though! :)

</comment></comment></comment></comment></comment></comment><comment><USER5> Pay $20 a month and get Paypal Payment Pro. It will let you integrate the payment collection directly into your site. Paypal will process the authorization in the background (your backend sends something to Paypal and process the response). This way, through out the entire process, the user stays on your site. Paypal acquired Verisign's PayLink and Pay Flow credit processing, and those are available as options too (albeit more expensive)

</comment><comment><USER6> Try WorldPay! www.worldpay.com

</comment><comment><USER7> Authorize.net?</comment>


In secret deal with drugmaker, health-records tool pushed opioids to doctors - <AUTHOR> https://www.latimes.com/business/story/2020-01-30/health-records-company-pushed-opioids-to-doctors-in-secret-deal <comment><USER2> From this tweet ([https://mobile.twitter.com/tomgara/status/122289759170208153...](https://mobile.twitter.com/tomgara/status/1222897591702081537)) which highlights the section that describes advertising inserted into medical software.</comment>


How Chrome to Phone Works - <AUTHOR> http://www.thechromesource.com/how-chrome-to-phone-works/ <comment><USER2> This seemingly minor feature is a big deal for app developers that work on both web apps and mobile apps. We develop a content library for the education market, and one of the most frequent questions we get is, "How can I view the mobile version of this content from here." Where "here" is the website loaded in a browser on a desktop/laptop computer. Our standard response was to use SMS or a third-party app. This solves that problem very gracefully.

</comment><comment> phoenix-project I did something like this for iPhone a while back.

<http://www.jumpingurl.com>

Its currently unavailable though, however.</comment>


Ask HN: How to get involved in projects, or how to start your own.  - <AUTHOR>

Hello HN, I'm currently studying  software development and I have a decent time grasp on Python and C++ currently. The only issue is how to improve more.  I'm still new to programming, and I'm looking for suggestions on beginner projects or things I can do myself or with others to learn. <comment><USER2> Getting into the game jam scene is a great way to find projects to work on. A game jam is a short game prototype festival/hackathon where developers and artists get together to create simple games. Game jam projects are usually fun, creative, have tangible objectives and short time frames, which makes it easy to see projects to completion.

Just this weekend, a 48-hour game jam called Bacon Game Jam was held - you can see the games made during that game here: [https://bacongamejam.org/jams/bacongamejam-07/games/](https://bacongamejam.org/jams/bacongamejam-07/games/) , or drop by at #bacongamejam @ Freenode on IRC to say hi!

You can also find general info about game jams here: [http://www.gamejamcentral.com/](http://www.gamejamcentral.com/) .

</comment><comment><USER3> Look through GitHub for repos you might find compelling and go to hackathons/Startup Weekend events where you can join people in person. Programming is tough to get used to, so pick a problem you are really passionate about and tackle it - your interest in the problem will carry you through the tough parts.

If you have an idea for a project and need feedback or teammates, you can post it on DoerHub.com (it has a lot of university student-led projects with subject matter experts in different areas and people are open to helping/mentoring you when they see you are passionate about learning their craft).

</comment><comment><USER4> Find a goal you love or care about and either find a project that shares the same vision as yours, or just create the project from scratch and lead it.

Open sourcing your work is an important part of learning as people will eventually send you pull-requests or report issues to you.

Pairing is one of the best way to get up to speed. Joining a company that believes in pair-programming is important, but you might also want to find a pair for yourself (and open source projects could provide you this opportunity).

</comment><comment><USER5> Would love for you to check out my project - sideprojectors.com

[http://sideprojectors.com](http://sideprojectors.com)

plenty of interesting projects to pick up or find someone to work with.

I believe the best way is to create something that you're interested in!

</comment><comment><USER6> Join a startup either as an intern or as an employee. Trust me.</comment>


Ask HN: How to revert to old Twitter profile page design? - <AUTHOR>

Like many others, I am starting to hate the new Twitter design, is it possible to revert to the old one ? <comment><USER2> Does this helps.. [http://www.digitbrunch.com/internet/how-to-get-back-old- twit...](http://www.digitbrunch.com/internet/how-to-get-back-old-twitter- design)

<comment><AUTHOR> Seems it locally applies a css. Any permanent option within twitter settings to revert ?

<comment><USER2> Nope, AFAIK, there is no settings that allows its users to use the old twitter profile..</comment></comment></comment>


Making Money the Old Fashioned Way (.pdf) - <AUTHOR> https://sherline.com/wp-content/uploads/2016/05/jm_business_book.pdf <comment><AUTHOR> I found this really interesting book about Joe Martin, an old-time entrepreneur that built small machine tools under the brand Sherline since 1973.

He wrote a sub-40 page book of his experiences over the years. It's incredibly interesting to read some of his viewpoints and perspectives during his time.

There are nuggets of golden information hidden within this book. Such as talking to customers,product development,conversion rates, and having actionable data at your fingertips.

Some of his advice and experience truly stood the test of time. At the same time some of his predictions were inaccurate (E-commerce in 2000 is a fad).

I would go as far as saying that this is the pre-internet version of the Rie's Lean Startup.

Hope you guys enjoy it as much as I did.</comment>


This Is My Story - <AUTHOR> http://blog.filipekberg.se/2013/07/15/this-is-my-story-part-1/

<comment><USER2> something about programmers of a certain age and qbasic...

... i guess that thing being that it was the only way to program for free on a default m$ install at the time (i.e. well after djerkstra's indictment of GOTO but a few instants before the internet was totally ubiquitous). _puts on old- man hat_ takes me back.

no matter how cheap raspberry pis and whatnot are, to a 10-year-old, there is no such thing as "practically free." their incomes consist mainly of bubble gum and/or weird-looking bugs, which, as intrinsically interesting as they may be, cannot be exchanged for adult-centric currency.</comment>


Ask HN: Ideas and the ability, but burned out working alone - <AUTHOR> So I've a few ideas for "lifestyle" businesses that could potentially grow into something more. They are eminently bootstrapable, but I'm tired of working on things alone. I start making progress, then fizzle.
And, while I'm strong at tech, capable at business, and able to network for business reasons, I suck at making the kinds of connections that could turn into cofounders.
I put it in a similar bucket to being able to make friends, something else I'm not particularly good at. Anybody have any clues for overcoming what goes well beyond normal introversion? <comment><USER2> As I understand, this is not the kind of advice you're looking for, but: have you seen [https://assembly.com/discover](https://assembly.com/discover)? It has a very interesting model that I think has legs going forward.

<comment><USER3> Not trying to be negative, but I can't help but point this out.... it seems there are some really really bad ideas on that site that wouldn't be worth the effort (probably some good ones as well to be fair).

<comment><USER4> Counterbalancing point: It doesn't seem to me as if the ratio of good / average / bad ideas on the website is significantly different than on other platforms / offline / "elsewhere".

</comment></comment></comment><comment><USER5> >I'm tired of working on things alone. I start making progress, then fizzle.

Could your burn out be related to lack of progress on personal/professional projects? For myself at least on days when I am not moving forward on a personal/professional level I can get a bit down. So the cure that works for me is to gain a net +ve movement everyday.

For work projects that could mean writing code for a new feature/fixing that inconsistent left margin or devouring my blog posts for any typos. Small victories in professional projects can can give me a boost in my personal life

On a more personal level this means reading another chapter of say "Mike" which drives the story forward. For a while I weaned off reading and the books that I was reading on at that time were left unfinished which affected my work as well as it left me dissatisfied with the current state of my affairs. Anyway, what I am trying to say here is that making progress on a personal level is just as important as making progress on a work level. Small victories in one can give you a much needed boost in another.

also check out this post : [http://thefreelancery.com/monday- answers-1-hustling-burnout-...](http://thefreelancery.com/monday- answers-1-hustling-burnout-firing-bad-clients/)

</comment><comment><USER6> I find the kind of people/relationships which turn into cofounders to be fairly rare. It requires mutual trust and respect, as well as passion for a shared goal. I've only met 6 in the last 22 years, so I'm no expert on how to meet one, but what has worked for me are two things: exposure (that is, spending time with people, preferably doing something that might garner respect and trust) and sharing your passions (talk about your ideas, and see who thinks they are cool).

If you are introverted, getting exposure might be difficult. Make sure you spend time around or working with people who might make good cofounders. Doing similar work to what your ideas are raises the level of technical trust (e.g. if your ideas involve web programming, work together to show each other that you can do that well), and if you are a trustworthy person, given enough time that will show through as well. Some kind of 'forced' social interaction (such as school, day job, roommate, family) is helpful if you are very introverted.

Sharing passionate ideas usually isn't a problem, at least for me. It's getting me to shut up about them ;). This annoys many people, but it makes it very easy to pick out the few people who are interested in them too.

I think that if you are feeling that working alone is non-optimal, you are probably right. I know I am much more productive as part of a team. The hard part is that you really do need to be picky about who is on your team if it's a real project. On the other hand, if you have a few 'what if' ideas you are willing to throw away if it doesn't work out, you can take a few risks with possible cofounders to see if there is chemistry there.

</comment><comment><USER7> I found myself in a very similar situation. My solution was to get a job at a large company. It didn't help much with the making friends part, but I am happy now that I don't work alone. I would consider whether a startup is right for you at this time.

<comment><AUTHOR> You have a valid point. The challenge for me is these ideas don't go away; instead, they sit in the background incessantly calling to me, making me feel like I'm missing something important. I took a position with a big company that I hoped would give me stability and flexibility to work on my own projects, and it does, but I'm failing to do so.

</comment></comment><comment><USER8> What exactly are you looking for? Another technical cofounder? A business person? Etc.. Finding different types of people require different approaches because the market isn't even.

<comment><AUTHOR> This is the question that almost caused me not to post because I'm not sure how to answer it. There are people out there who manage to draw people to them, no matter what the circumstance. I am not one of those people, and it is affecting my ability to get things done (part of it is being overwhelmed by needing to make a project interesting enough to capture customer attention; part of it is a sense of loneliness when things inevitably get challenging).

What I can't seem to do is connect with people at the level that brings about trust that something can be accomplished. I attend start-up events and am held back by my own...I don't know...fear of rejection, lack of belief in myself, leftover trauma from being the fat kid in elementary school? It's hard to psychoanalyze myself.

I knew it was a ghost of a chance because I don't even know what I'm really getting at, beyond what does it take for you to feel confident somebody is, well, competent and his/her idea is worth listening to.

Honestly, I feel like I'm missing something in this interaction because I have technical skill (15+ years), I have business skill (5+ years), I have management skill (5+ years), and I have product management skill (3+ years). I know how to get shit built, but I can't figure out how to get people interested in building it, much less on board.

<comment><USER9> Most people are not "connectors", and even people who are at fairly good at it often struggle with _leadership_.

This isn't criticism -- most people aren't builders either.

So I guess the question I'm left with is: do you want advice on how to get better at attention-drawing and leadership, or are you looking for another human to supplement your skills?

Either path is valid, it just depends on how you want to expend your energies, and what sorts of practicalities require consideration.

<comment><AUTHOR> I would say the latter. As I mentioned, I can make software products successful. Perhaps my weakness is making software companies successful.

</comment></comment></comment></comment><comment><USER3> I was in a very similar situation...

So I went and got a job. A few months in and I'm ready to get back to work by myself. But I think I'll stay put for a bit. It's nice having other people around during the day and I think I'm actually getting more done nights/weekends on (now) side projects than I was the last few months on my own. I'm certainly managing my time better.

I defiantly feel your angst though. I have been there and it was not fun and was killing my productivity.

<comment><AUTHOR> In reality, my day job may be a contributing factor. I work on a small team spread around the globe. It's an amazing team, but it doesn't fulfill that team connection. I have contemplated another job, but there are some serious benefits that I like about this one, not least of which is working at home.

(And, yes, there is a small dichotomy there, but I don't need in-person contact to have a connected relationship.)

<comment><USER2> Well, couldn't you probably justify working out of a coworking place at least once a week? I reckon it would be even better if someone from your global team actually lived near you and you could be in the coworking space together, as two people talking among themselves always draw more attention than one.

</comment></comment></comment><comment><USER10> Would the idea you're working on make a good open source project (without destroying the business model)? If so, throwing up the code and asking for contributors might be an easy (arm's length) way to get other people involved and keep yourself motivated.</comment>


Applying to Y Combinator without a VISA? - <AUTHOR> <comment><USER3> Hey folks,

I've actually just gone through this process. I'm a Canadian who just finished school and here are the option my US-based immigration lawyer laid out for me:

1) E2 investment visa: not easy to do. You need to meet an undefined "minimum investment criteria" which is typically $500,000 but if you're lucky you may be able to get in with less.

2) TN-1. A legitimate option for Canadians and Mexican. You need to find an American to own your startup in the U.S. and you start a company in either Mexico or Canada. You then get hired by the owner of the U.S.-based company and get a TN-1. You can't be the owner of the U.S.-based company but you can have an option to buy the whole thing.

The nice part about this is that you then get the American-based company to issue you an H1-B visa the next year and you're well on your way to a Green Card.

3) L2. Find someone on an L1 visa and marry them. You can then work for anyone in the U.S. including your own company

<comment><USER4> As a Canadian, don't you just need the citizenship card to get in America? The borders are pretty much open, so I wouldn't be surprised if that were the case.

<comment><USER5> Thats if you want to spend money in America. I grew up on the border and even worked a short stint in customs. They can be right anal if they think you're actually do anything productive. Could've just been the fine folk in Montana. Tight squinting eyes boring through your soul. Fingers rapping gently over the grip of their pistol. Waiting and watching you as a stillness fills the air, offering you no escape. "You boys ain't look'n at taki'n jobs from good 'merican boys now are ya?"

As someone mentioned, you can 'visit' but I'm not sure how well that'd work overall. Boston is a 5 hour drive from Montreal. If I recall correctly YC has funded outsiders before. I would be very interested to hear how they managed.

I think Y Combinator would be an amazing experience that I wouldn't get anywhere else. I'd be more than willing to give up several months of my life to move to a new country to learn and work with amazing people. The question of the border is the biggest stumbling block in the path.

</comment></comment></comment><comment><USER6> I would like to share our (Buxfer) experience. We are F-1 students, currently on a leave of absence from the Ph.D. program. We have applied for Optional Practical Training. This provides a 1-year extension when you can legally work and earn from your company. (Any F-1 student can set up a company, btw - <USER2> just cannot earn money from it :)

Within this 1-year period, we need to secure some other work visa. Our most likely bet is H-1B, but there are others like O-1 which we may consider. We are in talks with lawyers currently, but from what I've heard till now, it seems like getting H-1Bs approved will be possible if we demonstrate significant investment in the company.

Also, s/^/IANAL: / for every sentence :P

<comment><USER7> How significant is significant? Will YC-level funding suffice?

<comment><USER6> Sadly, no. It should be enough to provide a competitive salary to all the H-1B employees of the company, for about a year or so... So, an order of magnitude more than YC funding.

</comment></comment></comment><comment><USER7> I'm indian, I'm about to graduate with a phd, and I have a job offer. My options for starting a startup:

0\. Go back to india. This has a certain allure, but I need to start from scratch on figuring out contacts for investment. Odds of finding a deal like YC are slim.

1\. Work on the startup in the year of my OPT, hope to arrange a visa in a year.

2\. Put off the startup for a year or so, and try to transfer my H-1 to a startup. This is easier than applying for an H-1 from scratch, but it's not clear how much easier it is, and what the other constraints are.

3\. Put off the startup for a few years (unbounded) until my green card. Needless to say, this option has the stench of death to it.

These are my options as I see them. Am I missing something? Comments much appreciated, especially on option 2. It's been hard to even find a lawyer in Texas; everyone seems do be doing corporate H-1Bs right now.

<comment><USER8> 0.Finding a cool hacker co-founder will be a bit difficult too. We are all out here ;) But if you have one in mind, Go ahead. You don't need the YC money. Living in India is so much more cheaper, it's not like we need Health Insurance or anything. But you have to fly back to market it, Second round funding etc.

1.Very dicey.

2.No one really understands us, I have an appointment with the lawyer at the International Center at my University. I will post to news.yc about what I find out. Meanwhile, you can try to talk to your Univ. lawyers too.

3.Death.

<comment><USER7> Thanks, bluishgreen. I look forward to hearing more.

</comment></comment></comment><comment><USER9> There is another thread about it: <http://news.ycombinator.com/comments?id=4458>

Where I described as a Canadian, how to to get the TN-1 Visa.

</comment><comment><AUTHOR> Hey,

I posted my email in an old discussion about non-americans wanting to apply to Y Combinator. I got more than 10 emails so there seems to be a lot of people with questions about this.

There are a couple of groups in previous Y Combinator programs with one or more international founders, and I'm one of them.

Getting a real work-VISA to the US when you are 22 is virtually impossible, but should it stop you from applying? I don't think so.

Let's keep this thread open for VISA discussion. I'm happy to share my experience and knowledge

Gustaf

<comment><USER10> So maybe do a tourist visa for the 3 months. Then sort it out properly later. Is that what you would suggest?

<comment><AUTHOR> I think that's a good suggestion. You can even apply for a longer tourist-visa if you give them a good reason. The main downside is that wont be able to earn money directly from your US corporation

<comment><USER10> I think you can't pay salary. What about expenses? I think if it's profitable (won't that be nice in the 1st 3 months) one can always pay dividends to shareholders.

</comment></comment></comment></comment><comment><USER11> I'd say it's probably pretty difficult. I'm certainly not an expert, but to come in to the US on an Investment Visa, I think you need a few million in the bank..

To do it as a Employee, they'd need to do H1B (which I don't think applies here), or standard immigration.. If it's a standard work-visa, there's a problem in that you're not working for anyone..

It probably isn't impossible, but it'd make things substantially more difficult.

<comment><AUTHOR> To get a H1B to do Y Combinator is probably not an option at all. H1B require certification of the employer etc, which you are unlikely to get for a brand new startup.

If you find a way to be in the country then you can probably worry about VISA when you know your startup is going to be a real company and you'll take investments etc.

</comment></comment><comment><USER12> I wouldn't say it's impossible to get a work visa - I've gotten TN1's before, and am currently on a L1-A with a few months left before my Green Card is finished. I received my L1-A 2 years ago when I was 22, now at the age of 24 it took roughly 8 months to get my Green Card under the EB1 classification.

<comment><AUTHOR> Interesting! But doesn't L1 require you to be employed by the same company outside of US minimum 1 year? Did you study in the US?

<comment><USER12> Yes - this is where having a partner in the US is really helpful. My partner was able to setup our holding company, and I was able to work for it for a year and then go for my L1. We are then able to start smaller organizations in which VC's can own their percentage, and rest being owned by our holding company allowing for things to still be legal for my current Visa situation.

It's a little bit more complicated to setup, but well worth it and allows you to qualify for a Green Card much faster than the traditional avenues. I'm not sure YC/PG's standpoint on adding this layer of complexity to the incorporation procedure they undergo with YC Funded Startups, but I'm sure that if the team and idea is good enough they'd work with you on this.

</comment></comment></comment><comment><USER13> I'd like to hear PG's opinion on that though. Also, Besides Gustaf what are other people who's had similar situation but accepted by YC?

</comment><comment><USER14> What about frequent visits to Boston from Canada, say once a week? Would that work?

</comment><comment><USER15> can you like do your H1B through a consultant and "consult/work" for your company through the consultant.</comment>


Try Reading This Font and You'll Better Understand What Dyslexia Is Like - <AUTHOR> http://www.fastcodesign.com/3047080/try-reading-this-font-and-youll-better-understand-what-dyslexia-is-like

<comment><USER2> Did not know it was that difficult to read for those with dyslexia.

Would have been neat to see an example of numbers as well.

People with dyslexia should untie!

<comment><AUTHOR> What do you mean by 'untie'?

<comment><USER3> It's a long-standing joke.

       Dyslexics of the world, unite!

       Dyslexics of the world, untie!</comment></comment></comment>


Ask HN: Any tools for measuring engineering/development process? - <AUTHOR> Tools that may help Engineering Manager or CTO in small or mid size teams to build cadence around measuring delivery, output and align teams.<p>May be also help in onboarding and off-boarding new team members. <comment><USER2> Before implementation (and probably before choosing who does what), have the engineering team(s) estimate effort required for each granular work item in their upcoming release/sprint/month/whatever. Afterwards, you'll have a measurement of velocity. Pivotal does this with Tracker so they've documented it: [https://www.pivotaltracker.com/help/articles/planning_with_v...](https://www.pivotaltracker.com/help/articles/planning_with_velocity/), [https://www.pivotaltracker.com/blog/healthier-approach- estim...](https://www.pivotaltracker.com/blog/healthier-approach-estimating- velocity)

Note that, as they say, "Velocity is a planning tool, not a goal or a competition. Quality is a much healthier and more useful goal." However much effort you spend caring about velocity, spend many times as much caring about quality - code/implementation choices, UX, resulting impact to the product/business, etc.

<comment><AUTHOR> Quick question here: Is it not many times that the problem with estimates is scoping and not really the time estimate of the scope decided?

<comment><USER2> Both the scope and the time estimate can be wildly inaccurate. The theory here is that the team must clear up scope ambiguity at some point. If that doesn't happen, through inaction, that ambiguity gets "resolved" by a developer deciding what should happen while they're writing the code - or worse, not deciding so the ambiguity only comes up when a user tries the app. We've all heard horror stories about this - "It does X! It should do Y" Well, the spec/user story/chat transcript/whatever doesn't mention X or Y."

So, yes, the root cause is often that the scope is undefined or unclear. The process of having the team estimate how long something will take to implement (in fairly small work units - think hours, not days[1]) tries to solve both of those.

With my developer hat on, if I'm handed a user story like "Sandy wants to export her transaction history to CSV" to be implemented in this release, I'm going to immediately ask a couple questions: can the user choose the length of data to export? What app(s) does the CSV need to be importable and tested with, if any? Does it contain different fields than the Web view? Can everyone do it, even less-privileged users?

We don't necessarily need to spend hours debating this stuff, we just need to decide it before implementation rather than during or after/not at all. It's probably a 2-4 hour meeting with the team, looking just at the things planned for the next ~2 weeks. In my example, if the scope answers are that the user doesn't need any control of what to export, the CSV doesn't need to be compatible with any specific app, and the CSV should contain the same fields as the Web view for everyone, then I really may have 1 work item that probably won't take a lot of time/points. OTOH, for each answer that isn't no, there's at least 1 more work item :-) You'll also get better because after the release, you'll come back and say "Well, this took 3x as long because none of us spotted <some complexity>."

The important elements are: doing this as a team, not individually (so everyone can spot scope ambiguity and implementation challenges); understanding that the goal isn't to be perfect in release 1, it's to get better over time; that even if you're wildly far off, the return on the time will be positive merely for the scoping questions.

IOW, as a byproduct of estimating points for velocity, your team gets a shot at clearing up the scope.

[1]: [https://www.pivotaltracker.com/help/articles/estimating_stor...](https://www.pivotaltracker.com/help/articles/estimating_stories/)

</comment></comment></comment><comment><USER3> Read

[https://www.amazon.com/Software-Estimation-Demystifying- Deve...](https://www.amazon.com/Software-Estimation-Demystifying-Developer- Practices/dp/0735605351)

and

[https://www.amazon.com/Rapid-Development-Taming-Software- Sch...](https://www.amazon.com/Rapid-Development-Taming-Software- Schedules/dp/1556159005/ref=sr_1_3?dchild=1&keywords=rapid+software+development&qid=1595944002&s=books&sr=1-3)

Also think: if the business does project A, how much money does that make for us or save for us? From a developer standpoint I have gotten the business people to tell me a value that is a fraction of the cost of the product. You fold that one and free up resources for project B which is the other way around.

</comment><comment><USER4> Pinpoint is solving for this

[https://pinpoint.com](https://pinpoint.com)

<comment><AUTHOR> Are there any other companies doing this? Why not? Is it not a big enough problem to solve. Or is it that the actual buyer of such product and user of products differ from one another.</comment></comment>


Session types in programming languages (2016) - <AUTHOR> http://simonjf.com/2016/05/28/session-type-implementations.html <comment><USER2> For those who want to learn more, I wrote an extended, accessible introduction to session types (predicated on a little knowledge about PL metalanguage syntax, e.g. BNF grammar) here: [http://cs242.stanford.edu/lectures/07-2-session- types.html](http://cs242.stanford.edu/lectures/07-2-session-types.html)

It also includes a walkthrough of a session types implementation in Rust.

<comment><USER3> Noob question, I was not able to follow what the advantages of using session types were. What am I missing?

Follow up, 1\. How would session types differ from contract based testing? 2\. Is there a notion of versioning on the types? 3\. If there were better type support (ie. Well defined sum and product types) for wire protocols (protobufs etc) would that solve any of the problems session types might?

<comment><USER4> as an example, session types are useful if you want to give precise types to coroutines that yield nontrivially (i.e. aren't basically iterators). consider this (slightly contrived) Python example of a coroutine yields two intermediate values, a result, and finishes:

      from typing import Generator

      # Generator[YieldType, SendType, ReturnType]
      # https://docs.python.org/3/library/typing.html#typing.Generator

      def inc_mul(a, b) -> Generator[int, None, None]:
        "Computes (a+1) * (b+1), yields the intermediate results"
        a1 = a+1
        yield a1

        b1 = b+1
        yield b1

        yield a1*b1

      proc = inc_mul(1, 3) # create the "process"
      a1 = proc.send(None) # 2
      b1 = proc.send(None) # 4
      ab = proc.send(None) # 8
      proc.send(None) # end. raises StopIteration(None)

Our signature

      inc_mul(a: int, b: int) -> Generator[int, None, int]

doesn't really capture "yields two intermediate ints, a result int, and finishes" – it only says that it'll yield some unspecified number of ints. but using session types we can describe the interaction precisely! it'd look something like

      inc_mul(a:int, b:int) -> Process[
                                 ?None => !int =>
                                 ?None => !int =>
                                 ?None => !int =>
                                 ?None
                               ]

the notation is based on the article – `?T` means "accepts a T", `!T` means "yields a T`, `=>` means "and then". the type is a bit noisy because of all the dummy None's needed to push the coroutine along.

we could also extend our coroutine to, after yielding the two intermediate values, accept a float (power) and yield `(a1 × b1) ^ power` as the result (this would let the user determine the exponent she wants based on the intermediate results, if she needed that for some reason). the type would then change to

      inc_mul(a:int, b:int) -> Process[
                                 ?None => !int =>
                                 ?None => !int =>
                                 ?float => !float =>
                                 ?None
                               ]

we can approximate this as `Generator[Union[int, float], Union[None, float], None]` but that doesn't capture the order/number of the yields/sends.

</comment></comment></comment><comment><USER5> Latest version of this post [2017] is found at [http://groups.inf.ed.ac.uk/abcd/session- implementations.html](http://groups.inf.ed.ac.uk/abcd/session- implementations.html)

<comment><AUTHOR> Thanks zozbot123

<comment><USER5> You're welcome! Besides, y'know, you could have _read_ the post before submitting it, and it would have told you the exact same thing? It's not rocket surgery.

<comment><AUTHOR> Haha actually did read it. But eyes must've skipped over the header.

</comment></comment></comment></comment><comment><AUTHOR> Didn't write this but thought it was interesting as it seems to address pain points I've felt when building out a typed actor system (requirements for adapters, etc)

</comment><comment><USER6> Since then Pony came along: Primitive, Static

No external Scribble-like protocol needed, builtin into the compiler. Actor- based.</comment>