Tmux Resurrect – Persists tmux environment across system restarts - <AUTHOR> https://github.com/tmux-plugins/tmux-resurrect <comment><USER2> I've been using this for a few months, since for some reason my work Macbook really likes to crash when it goes into sleep mode (have a feeling it's related to our Vagrant/VMWare setup, but haven't had a chance to investigate). It works better than any similar tmux plugin I've tried, and is dead-simple to use.

I particularly like that there's a "whitelist" of which running commands it will restore, so I can e.g. restore both VIM sessions and my Webpack watchers when I restore my session.

<comment><USER3> If you're on OS X Yosemite, the "sleep wake failure" problem is a well-known issue that is (probably) not hardware-related. I have it, my colleagues (some of whom have brand new machines) have it, and it's probably what you are affected by.

The symptom is that the machine will frequently reboot instead of coming out of sleep. From the looks of things, it's related to the 70-minute sleep-to- standby setting (where the machine will turn itself off), which can be changed with "pmset".

</comment></comment><comment><USER4> Considering that I recently ran home with a rapidly flattening battery - precisely so that I would not lost my session - I am very pleased to find this here :D

<comment> iso8859-1 why not hibernate?

<comment><USER4> Mac. Does sleep when battery flat, rather than "die" completely - but how long do you trust it for? Knowing Sod's Law, I opted for the run.

<comment><USER5> Newer Macs will save the memory to nonvolatile storage so they can withstand total power loss. The question of trustworthiness remains, though.

<comment><USER6> My experience with my Macbook is that around 20% battery, it just dies. No sleep, no hibernate, it just goes completely dark and when I plug it back in it has to boot from scratch.

<comment><USER5> Sounds like you have a bad battery or something like that, which is causing the battery meter to be inaccurate and is thus interfering with the rest of the process. To safely sleep/hibernate your machine the system has to have a pretty good idea of just how much energy is left in the battery, since it has to initiate the process before the battery goes completely flat. On a properly working machine, you should get all the way down to 0%, and then it will forcibly sleep if you don't do it yourself.

Have you tried an SMC reset? That's the low-level whatnot that controls the battery, and sometimes it can get confused.

<comment><USER6> I tried an SMC reset today, and it changed nothing. It still just dies right around 20%. (At least, I _think_ I reset the SMC. There wasn't any obvious feedback confirming that I had done so.)

<comment><USER5> Yeah, the SMC reset procedure is pretty opaque. Sounds like you're probably at the point of needing a repair. Hope you're in warranty, although given how these things go I imagine you're probably not.

<comment><USER6> Nah, I've had it a few years, so it's out of warranty. I'll probably have to replace the battery eventually. I don't mind if the battery's capacity is decreasing, I just want it to auto-sleep before the battery dies. Maybe there's a way to set the auto-sleep threshold to 25% or something?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I _love_ this plugin. Usually, my mac stays online for days and even weeks, but any time I go down (or for some certain software updates when I have to restart it), it really sucks to lose all your environmental setup.

I combine it with a few lines of code in my ~/.zshrc to automatically enter the virtualenv for the current directory. Works out really nice! :)

<comment><USER8> there's a oh-my-zsh plugin for that

</comment></comment><comment><USER9> Been using tmux resurrect for awhile now and I love it...one thing occurs to me though: does anyone have a hack to automatically save my tmux session on disconnect?

Edit: ahha, not exactly what I asked for, but linked on the tmux-resurrect page is tmux-continuum, automatic saving of tmux sessions. Perfect for me.

<comment><USER10> Wait... what? That's the whole point of tmux. As far as I know there's no such thing as 'saving'. They're automatically saved. Unless you're on a shared computer? If so... here's a solution I wrote up a while ago:

\--- title: Tmux on a shared server \---

Normally, tmux stores its session sockets in the /tmp directory. This is bad news when trying to run tmux on a shared computer (e.g. shared compute nodes) since the tmp directory is probably cleared on every login. To get around this tmux offers a way to store session sockets in alternative locations. How to use this isn't entirely clear in the man page though, so I'll outline it here. First, I'll create a directory to store the socket with ``mkdir ~/.tmux.socket'`{.bash}. Tmux stores new session sockets in the tmp directory so we must change that when we start tmux:

      TMPDIR=~/.tmux.socket tmux

and to attach to this socket we use the `-S`{.bash} option and glob to the socket (defaulted to be named `default`{.bash})

      tmux -S ~/.tmux.socket/*/default attach

Here are some aliases to put into your shell config file to help:

      alias tmux-start="TMPDIR=~/.tmux.socket tmux"
      alias tmux-attach="tmux -S ~/.tmux.socket/*/default attach"

<comment><USER11> He probably means saving on computer shutdown or reboot.

</comment></comment></comment><comment><USER12> I wrote a far more basic zsh config script that integrates with OSX's Terminal.app window restoration to restore the current working directory in each tab after quit / relaunch. Between that and browser tab restoration on reboot, I don't mind the occasional restart any more.

[https://gist.github.com/pcl/f2c6a6f6f193400eeaa6](https://gist.github.com/pcl/f2c6a6f6f193400eeaa6)

<comment><USER8> I don't have a .zsh.d folder but a .oh-my-zsh folder

Where do I put your script?

<comment><USER13> You should be able to drop it in ~/.oh-my-zsh/custom and have it run automatically upon terminal login.

</comment></comment></comment><comment><USER14> I gave up on tmux on my Mac, as I mainly used it with teamocil to have saved layouts of panes and commands, but I never disconnected from it. I found quite a few people use it this way.

I wrote iTermocil[2] to replicate the functionality of teamocil natively in iTerm2, so I could have all the upsides (from my POV) but keep native UI elements etc.

[1] [https://github.com/TomAnthony/itermocil](https://github.com/TomAnthony/itermocil)

<comment><USER15> I didn't know about Teamocil, I use Tmuxinator for the same purpose. The latter seems to have more stars on GH, any reason why prefer the former?

<comment><USER14> Simple because I came across teamocil first, as someone recommended it to me. It is actually teamocil that led me to tmux!

I have since come across tmuxinator, which is almost identical, but from my reading of tmuxinators docs it seems it is more flexible in how you can configure it.

I'm adding tmuxinator support to iTermocil. :)

<comment><USER15> Brilliant, looking forward!

</comment></comment></comment></comment><comment><USER16> Is it also able to restore ssh session? Like, host and working directory at least?

<comment><USER17> By default it only restores a program that is whitelisted, such as vim, man, etc. You could, I guess, tell it to also restore ssh sessions. Here's a guide on how to do that: [https://github.com/tmux-plugins/tmux- resurrect/blob/master/d...](https://github.com/tmux-plugins/tmux- resurrect/blob/master/docs/restoring_programs.md)

<comment><USER16> Will have a look, thanks. I was dreaming of something that could restore tmux sessions, along with its ssh connections, and the vim inside the ssh :D seems like christmas is not for today.

<comment><USER18> You could use a bastion host to run the tmux. If your client machine were to disconnect/reboot, the bastion host would keep the sessions open. You'd just need to login to it and re-attach tmux.

</comment></comment></comment></comment><comment><USER19> Has anyone here ported from Tmuxinator to Tmux Resurrect? Was it a Success?

<comment><USER20> Just in case you missed it, there's a guide how to migrate from tmuxinator to tmux-resurrect:

[https://github.com/tmux-plugins/tmux- resurrect/blob/master/d...](https://github.com/tmux-plugins/tmux- resurrect/blob/master/docs/migrating_from_tmuxinator.md)

<comment><USER21> I read that, but as a rather heavy user of tmuxinator, I wouldn't really want to have _all_ my projects running in the background at all times. I like that with tmuxinator, I can just start up the project(s) I'm currently working on, and leave the rest idle.

I am going to try out tmux-resurrect, but it's value to me would be mostly for ad-hoc tmux sessions; I think I'll still set up dedicated tmuxinator configs for each of my longer term projects.

</comment></comment></comment><comment><USER22> Thanks for this!

I've done something horrible in the past when I knew about coming rolling power outages - snapshoting virtual box. It worked but was sort of annoying.

</comment><comment><USER23> This is the greatest thing since ... tmux.

If only @resurrect-save-zsh-history was implemented.

</comment><comment><USER8> What I don't like is that you have to manually save/restore every time.

<comment><USER20> There is tmux-continuum that works with resurrect to automate saving/restoring.

[https://github.com/tmux-plugins/tmux-continuum](https://github.com/tmux- plugins/tmux-continuum)</comment></comment>


Will Windows 10, DirectX 12 mean a golden age for PC gamers? - <AUTHOR> http://blogs.nvidia.com/blog/2015/01/21/windows-10-nvidia-dx12/

<comment> TD-Linux Maybe a golden age for nVidia profits, but to me it seems that PC gaming is already in a golden age. Wide availability of DRM free games, as well as incredibly convenient distribution of games (Steam), seems to be a good sign.

In addition, while typical console AAA games probably don't do as well on PC, many other games are doing enormously well. For example: [http://steamgraph.net/index.php?action=graph&appid=42690q730...](http://steamgraph.net/index.php?action=graph&appid=42690q730&from=0)

<comment><USER2> If I could play mainstream indie titles from Steam in a touch-friendly manner on a tablet... Man, I would throw my CandyCrushClanClash-infested iPad and Nexus right into a fire barrel.

</comment></comment><comment><USER3> It's interesting to see this from Nvidia, as the tighter coupling of Xbox and PC gaming under Windows 10 seems likely to push gaming performance toward AMD.

Xbox One (and most other consoles) utilize AMD APUs for processing/graphics, and with a unified OS, it seems it will become much lower cost for developers to optimize toward AMD's architecture and for their Mantle API.

I understand that Nvidia will still remain competitive in the PC market, but this leads to potential for interesting developments in graphics processing space.</comment>


Investors reportedly buying into Snapchat at $10B valuation - <AUTHOR> http://mobile.theverge.com/2014/8/26/6071911/snapchat-finds-investors-for-10-billion-valuation-round-report

<comment><USER2> The valuation of Snapchat is absolutely crazy. There is no revenue and barely a hint of a revenue model (possible location based ads and news). I don't really understand the $10B let alone the $3B offer.

For those who want to non-mobile link (I hate subdomains for mobile sites instead of using a responsive design): [http://www.theverge.com/2014/8/26/6071911/snapchat-finds- inv...](http://www.theverge.com/2014/8/26/6071911/snapchat-finds-investors- for-10-billion-valuation-round-report)</comment>


Semi amusing development stories - <AUTHOR>

Well last night was a fun evening. Spent over a hour (billable time) explaining to a client I was not being rude within their project code.
How did this come about? Well the client asked to see their project and being a good obedient developer I complied. I opened up a remote desktop share session and got down to it. So I showed them their project and all was good all be it a few textual changes.
So I cracked open the project folder <website>.git. Wait, STOP, "why has my project got the word git at the end of it? Is this what you think?" At this point I think the word which came out my mouth was "Errmm, Huhh what?". To cut a long story short I had to explain that I didnt think he was a git (nor his project) and that in fact it was a technology.
Disaster inverted!
Well until he saw the grunt folder (and my push script grunt-onto). At this point he must have been tired and decided he had enough of gits and grunts and called an end to the meeting saying "how disappointed he was with my humours attempts in this `oh so important` project". I then had to craft an email to him with links to the project websites to prove in fact I was not being a  but they are actually technologies.
\\ slaps head //
Have you ever had any misunderstandings involving project terminology or a client who just didnt get it; or is it always just me?*
Virtual punch in the head for the person who first mentions forking. <comment><USER2> I run Fork the Cookbook. I get hatemail all the time on the word "fork"

This one is particularly funny (yes, everything was in one sentence and spelling errors abound):

"I find your terminology offensive, imature and disgusting. Your the ones trying impose yourself on the average cook. And trying to inject your crude fantasy's, that you probably think is somehow humorous, into America culture. Well I don't find it funny or think its dirty conotations have anything to do with food. I dont think its apealing and find it like so many mindless blogs a waste of my time. You act like you speak for everyone, on or using the internent, which I don't find the end all be all of society. In fact quite the opposite, for your information not everyone subscribes to your ideaology. Plain and simple I think your term is nothing but pornographic. So I'm not intrested in you trying to impose your crude version of a rediculous, anoying Rachael Ray like idiotic slang description for food or cooking. So screw off, I like my kitchen and food clean, along with the words used to describe it....."

</comment><comment><USER3> Client: "I'd like to be able to do more graphic design myself, but I use Ubuntu on my laptop. Any recommendations?"

Me: "GIMP"

Client: "I'm not prepared to be spoken to like that"

 _click_

</comment><comment><USER4> [http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/...](http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/20000/3000/700/23763/23763.strip.gif)

</comment><comment><USER5> git git/ nounBRIT.informal 1\. an unpleasant or contemptible person.

haha...i had no idea.

<comment><AUTHOR> Just remember it when you have some British clients.</comment></comment>


I Like What I Hear About the $40M Seed Stage Fund, "Founder Collective" - <AUTHOR> http://www.bigstartups.com/wac6/blog/142/I-Like-What-I-Hear-About-the <comment><USER2> It's too bad they're on the East Coast, since I don't believe there exists such a fund here in Silicon Valley, perhaps due to the high concentration of "traditional" VCs.

YC's a non-starter for me, since it's nowhere near enough money to quit my "day job" (which, fortunately, is ramping up in terms of challenge quite nicely, at the moment), let alone a hardware-heavy prototype.</comment>


Eating 7+ portions of fruits and veggies a day reduces your risk of death by 42% - <AUTHOR> http://www.sciencedaily.com/releases/2014/03/140331194030.htm <comment><USER2> Sigh. Correlation. Causation. No mechanism is offered, and all they studied was respondent's reported diet. Nothing to see here, other than the fact that there is evidence that eating lots of fresh produce correlates well with longevity. Really? Thanks, Mr. Scientist! Do both of those things also correlate well with upper middle class?

<comment><USER3> They do say that they controlled for class and physical activity: but the only thing open-access about the article is the abstract, so I can't tell _how_ they controlled for those things.

<comment><USER4> The controlled for them in the standard way, by adding them into the (Cox) regression. The full list of controls is:

"Other variables included in the analysis were age (35–44 years, 45–54 years, 55–64 years, 65–74 years and 75+ years), sex, smoking status (current smoker, ex-regular smoker, never smoked regularly) and social class of the head of household (manual, non-manual, other). Education (degree or equivalent qualification, other, no qualification), measured body mass index (BMI) (<20 kg/m2, 20–24.9 kg/m2, 25–29.9 kg/m2, ≥30 kg/m2), physical activity (as maximum activity intensity level in the past 4 weeks: inactive, light activity, moderate activity, vigorous activity) and alcohol consumption on heaviest drinking day in the previous week (non-drinker, drank within limits, drank above limits, drank more than twice the recommended daily limit) were also added to the models as indicated."

The most obvious thing missing from this list to me is all other dietary related variables. For example, people who like the taste of plants are probably far less likely to enjoy eating red meat, salty foods, and many other things that have been associated with increased mortality.

<comment><USER5> >For example, people who like the taste of plants are probably far less likely to enjoy eating red meat, salty foods, and many other things that have been associated with increased mortality.

Which, incidentally, have really only been associated with increased mortality through flawed epidemiological studies such as this one.

<comment><USER4> Flawed is a strong word. There is little doubt that meat and sodium intake are associated with a number of poor health outcomes. (Run almost any regression you can think of.) That is a much weaker statement than saying the former causes the latter, which is why responsible researchers are reluctant to do so unless there is very convincing evidence. Even if you are not convinced of the causal link, you would be well served to moderate your consumption of these foods on the chance that one exists.

</comment></comment></comment></comment></comment><comment><USER6> "reduces your risk of death by 42%"

Pretty sure I still have a 100% risk of dying no matter what.

<comment><USER7> Risk of dying as a function of age, obviously.

</comment></comment><comment><USER8> Ah, food studies. The breeding ground of bad science. I am not saying this is bad science, but a quick glance shows this to be survey data.

The problem with the data is that people who eat "healthy" probably care more about their health. Even if the food has a negative effect, they could have other tendencies (exercise) that outweigh any negatives.

Plus they probably eat more carefully, in general, drink less, etc. So... correlation != causation yada yada

A better study would be to take unhealthy people and now introduce the fruits and veg and see what happens.

<comment><USER9> You might be correct, but I've seen a lot of smart people fall into this trap: "X is not proven to be true, there for X is false". The study might not prove any hard facts, but it doesn't mean the point of the study isn't spot on.

</comment></comment><comment><USER10> On a technical sidenote, 65226 people were in the study. Who wants to bet that the count was limited by the number of rows that fit in an old excel spreadsheet?

</comment><comment><USER11> I doubt its quite so straightforward. If you eat less veggies and replace them with doughnuts amd beer then im sure you're probably more likely to die sooner. Replace them with organic pastured meats, particularly organ meats, then Im not so convinced.

There is much more to health than the amount of vegetables you eat, including genetics, and it is imposssible to properly test them in isolation.

</comment><comment><USER12> Don't you just love statements like "and canned and frozen fruit appeared to increase risk of death by 17% per portion" \- I could be dead by nightfall.

I do look forward to a proper statistical analysis of these results rather than this tabloid nonsense. It will be interesting to see if there is actually any measurable impact above (say) just some fruit or vegetable intake per day.

<comment><USER13> Your risk of death is already, probably really really low, so increasing it by 17% isn't going to kill _you_. It will kill the other you out in statistics land, which could actually be me, so do a bro a favor and watch what you eat.

<comment><USER14> To clarify what I think you're saying:

It's a percent of a percent.

So if you have a 0.004% chance of dying on any given day, and you increase this by 100%, then you have a 0.008% chance of dying. Not a 100.004% chance.

<comment><USER13> 100% !

</comment></comment></comment></comment><comment><USER15> Eating 500+ portions of fruits and veggies a day reduces your risk of death by 99.99%. Because you are far less likely to get into any accidents if you are so busy eating fruits.

<comment><USER16> You'd need a spotter because your risk of choking would increase by a lot.

</comment></comment><comment><USER17> How much is one portion actually ?

<comment><USER18> The study says they used UK Department of Health definitions of portion sizes, which are 80g / portion for fruits and vegetables. [1]

[1] [http://www.nhs.uk/Livewell/5ADAY/Pages/Portionsizes.aspx](http://www.nhs.uk/Livewell/5ADAY/Pages/Portionsizes.aspx)

</comment></comment><comment><USER19> This isn't very valuable with out the full questionnaire visible. Most of these kinds of "studies" come from huge questionnaires. If you ask enough questions then your statistics will show a strong link between _something_.

</comment><comment><USER20> link to actual paper:

[http://jech.bmj.com/content/early/2014/03/03/jech-2013-20350...](http://jech.bmj.com/content/early/2014/03/03/jech-2013-203500.full.pdf+html?sid=5fecc845-0e21-4e37-9b20-e15d266d525b)

</comment><comment><USER21> No it doesn't Your risk of death is 100%

</comment><comment><USER22> Steve Jobs was a fruitarian and he died at the young age of 56.

<comment><USER23> What's your point? That anecdotal evidence can contradict statistics?

<comment><USER24> And what are these "statistics" based on? Self reported survey data, aka "anecdotes".

</comment></comment></comment><comment><USER25> I hate titles like this. Obviously nothing will decrease your risk of death because your death is 100% guaranteed.

<comment><USER26> If I decrease my likelihood to die from cancer and heart-disease, which ones am I increasing?

<comment><USER27> Kidney failure. Also various accidents and disasters.

<comment><USER28> Not at any point in time, you don't. You increase your risk of those things as t=∞ (because previously you might have died before they could happen), but your risk of those things does not increase at any point in time.

<comment><USER27> Oh, I see. Well if you start eating a lot of grapes, your chances of choking on a grape go up a lot :)

</comment></comment></comment></comment></comment><comment><USER29> Today doctor says this, 10 years later doctor says exact opposite.

<comment><USER30> Doctors have been suggesting that people eat more fruits and vegetables for a lot more than 10 years.

</comment></comment><comment><USER31> I don't see the relation between this and hacking. Oh probably reduce risk of death -> live more -> code more -> hack more.

<comment><USER27> Before you can be a healthy hacker, you must first be a healthy human being.

<comment><USER32> Just don't get shot with a banana cannon. That could cause trauma and death.</comment></comment></comment>


Immigration Overhaul Wins Panel's Backing in the Senate - <AUTHOR> http://www.nytimes.com/2013/05/22/us/politics/leahy-voices-optimism-as-panel-continues-work-on-immigration-bill.html?hp&_r=0

<comment><USER2> > Mr. Hatch's amendment clarifies distinctions between companies in which the > majority of engineers and computer technicians are Americans, and companies > with mostly foreign workers. Under the measure, more stringent restrictions > would apply to the companies with a foreign labor force, like many Indian > outsourcing companies, raising incentives to hire more Americans.

As a Canadian working for companies remotely in SF. Can someone explain to me what this means for remote engineers?

Edit: Found the wikipedia page [http://en.wikipedia.org/wiki/Border_Security,_Economic_Oppor...](http://en.wikipedia.org/wiki/Border_Security,_Economic_Opportunity,_and_Immigration_Modernization_Act_of_2013)

I'm curious if the restrictions on tech companies will be lifted, for example for H1B visas

> "additional recruiting requirements are added that require positions first > be posted on a government website for 30 days and offered first to qualified > U.S. workers."

</comment><comment><USER3> Does this bill say anything on making green card process quicker for Indians/Chinese citizens?

<comment><USER4> Yes, it gets rid of the per-country quotas.</comment></comment>


Show HN: SoundCloud Downloader Tool - <AUTHOR> http://scdownloader.net/?ref=hn

<comment><USER2> Not a fan of this. SoundCloud is full of independent artists, and ripping their tracks instead of buying them sucks.

</comment><comment><USER3> Nice one. Works great. Wonder how long it will stay live though.

<comment><AUTHOR> >> Wonder how long it will stay live though.

Would you elaborate that ?

<comment><USER4> You're violating SoundCloud's terms of use:

      (i) You must not copy, rip or capture, or attempt to copy, rip or capture,
      any audio Content from the Platform or any part of the Platform,
      other than by means of download in circumstances where the relevant
      Uploader has elected to permit downloads of the relevant item of Content.

[https://soundcloud.com/terms-of-use#acceptance-of-terms- of-u...](https://soundcloud.com/terms-of-use#acceptance-of-terms-of-use)

<comment><AUTHOR> I thought I'm just extracting the final_download_link, so it would be okay. (As, in the end, content is getting served from their CDN)

<comment><USER5> From their perspective you are fiddling with their software to bypass restrictions requested by the content creators/uploaders. They will just ban your IP and be done with it. If they can't for whatever reason, I guess they'll have to start obfuscating the protocol.

</comment></comment></comment></comment></comment><comment><USER6> Cool, nice to see this one working.

I wrote a Node.js package ([https://github.com/jbrooksuk/SoundRain](https://github.com/jbrooksuk/SoundRain)) to do this same thing, but I used it within a custom CLI app.

</comment><comment><USER7> Soundcloud already provide an option for making tracks downloadable at the quality they were uploaded. I choose this for my tracks.

If the artist hasn't opted to make the Soundcloud content downloadable, what quality MP3 does this rip ?

Is it better to get a decent quality copy from Beatport, Bandcamp or wherever ?

<comment><USER8> This doesn't seem to be aimed at people for whom quality is important (hint hint), otherwise yes it's probably better to go buy the track.

The soundcloud files should be 128 mp3's if memory serves.

<comment><USER7> Fair point. Supporting musicians probably isn't in the world-view of folks who are satifsfied with a ripped MP3.

A good application for this would be snagging all of an artist's free downloads in one click rather than a single URL at a time.</comment></comment></comment>


VFsync – Secure file synchronization system - <AUTHOR> https://vfsync.org/index.html <comment><USER2> The title doesn't do the linked page justice.

1\. It is by Fabrice Bellard, of QEMU, FFMPEG, TCC, BPG, ... fame.

2\. It runs Win2000 in QEMU in Linux in JS on your browser. Seriously. Not very quickly, but it works. See [https://vfsync.org/vm_list.html](https://vfsync.org/vm_list.html) ; Also X windows if you prefer.

3\. The idea seems to be that you can store encrypted data in the cloud, and use it on _any_ machine capable of running javascript, by booting into a Windows or Linux machine emulated in the browser. Obviously, it is only as secure as the machine you run it on -- but if you can trust that machine, you have an encrypted "fat" client everyone on "thin client" hardware. Dropbox lets you take your data, this lets you take your whole machine.

<comment> Capt-RogerOver This guy is truly a legend. A force of nature. "Windows 2000 Demo It is done in an unusual way: the browser runs a Javascript VM, which runs x86emu, which runs Linux, which runs QEMU, which runs Windows. "

</comment></comment><comment><USER3> I'm not confident, because I read this code for less than 5 minutes, but it looks like this is unauthenticated AES-CBC, complete with a padding oracle in fs_wget.c that, ironically, protects the system from what would otherwise be an exploitable integer overflow.

If I'm wrong, and there's a message authenticator somewhere I missed that makes this system secure, I sincerely apologize. It is not even a little unlikely that I'm wrong.

<comment><USER4> After reading Win2000-on-this-on-that, I thought the whole thing was some kind of joke or experiment along these lines:

[http://www.networkworld.com/article/2223927/opensource- subne...](http://www.networkworld.com/article/2223927/opensource-subnet/why- this-linux-user-is-now-using-windows-3-1.html)

Maybe he just missed using Windows 2000. Then, decided to make it run on any of his machines. (shrugs)

</comment></comment><comment><USER5> This project is made by Fabrice Bellard who is the author of QEMU and ffmpeg [1].

For what I see in this page, seems that finally his PC emulator in JS has a MIT license [2]. Previously he didn't share the source code.

I don't quite understand the synchronization part of this project but this guy knows what he is doing so it might be a good project to invest time in.

I hope I will be able to host everything in my computers and avoid trusting a third party service.

[1] [https://bellard.org/](https://bellard.org/) [2] [https://bellard.org/riscvemu/](https://bellard.org/riscvemu/)

</comment><comment><USER6> Why Windows 2000? Is that suddenly free or something or is it just fast enough to run in JS emulation?

There's a small industry targeting this kind-of thing but its a hosted remote desktop targeted at high value online banking users.. for example BankVault: [https://www.bankvaultonline.com/](https://www.bankvaultonline.com/)

This could potentially be some kind of alternative idea I guess.

<comment><USER7> > Why Windows 2000? Is that suddenly free or something or is it just fast > enough to run in JS emulation?

My speculation:

1) NT 3.51 or 4.0 would be faster, but significantly less compatible with any remotely modern software.

2) XP is significantly heavier while only being marginally more capable.

3) 95/98/ME is a horrifying amalgam of DOS and Windows code, which presumably makes demands on the completeness and accuracy of the x86 emulation.

<comment><USER8> But it isn't free AFAIK.

Would ReactOS work at all though?

</comment></comment></comment><comment><USER9> Why would I use this instead of Tahoe-LAFS or magic-wormhole?

<comment><USER2> It carries an OS/Desktop, not just files.</comment></comment>


Ask HN: How does your startup manage user logins? - <AUTHOR>

What do you use to manage multiple users having to connect to multiple resources? For example your own admin pages, linux servers, email and databases. What do you do if a password is compromised or someone leaves the company?<p>Do you use an Excel sheet with places where to add/remove users, or do you have some kind of LDAP/SASL setup, or perhaps a single username for all users? <comment><USER2> Mostly single usernames. Everyone keeps the passwords in 1password, which is synced in their own Dropbox. The best thing about 1password is that you can look a password up easily for a team member. I suggest to everyone to use the random pwd generator in 1password as well.</comment>


Ford unveils all-electric car – the Mustang - <AUTHOR> https://www.bbc.co.uk/news/technology-50460241 <comment><USER2> First reaction, great model to start with, right after that, hmmm.</comment>


Ask HN: Certificate Revocation for Heartbleed? - <AUTHOR>

As we all know by now, any certificate potentially exposed via the Heartbleed bug should be revoked, and a new certificate generated. However, certificate revocation appears to be of dubious effectiveness in practice [0]. As a site operator, is there any practical measure I can take to give teeth to a revocation?<p>[0] http://news.netcraft.com/archives/2013/05/13/how-certificate-revocation-doesnt-work-in-practice.html <comment><USER2> You are at the whims of the clients and the browsers they are using.

But, you already are, as they decide whether or not to trust or verify the authenticity of your certificate.

You can and should revoke, but it's not clear to me that you can increase the efficacy of that action with your clients.</comment>


The 'Law Against Apple' - <AUTHOR> https://www.fastcompany.com/90456530/apple-has-a-vladimir-putin-problem <comment><USER2> It's hard to see this as anything other than creeping fallout from tech's willingness to accomodate requests & demands from China over the last decade. What's the difference between complying with China's demands that you share encryption keys or scrub search results and letting Russia push pre-installed apps on your users? Can the US forbid end-to-end encryption? Can China? Can France?

If the UAE government tells Apple to pre-install Totok or GTFO, who really thinks that Apple isn't going to GTFO? What about the FBI asking for a backdoor in iMessage?

The binary choice here was between letting authoritarian governments push restrictions or not. Now that pretty much all of tech has started down this slope it's hard to see where we could draw a line in the sand.</comment>


Ask HN: Which browser is the best to develop in? - <AUTHOR> I have been doing web development for a while, but mostly server side. Only recently I have started to do client side dev and the question pops up:
What browser can give more "guarantees" that what I develop will work consistently in other browsers?
i.e. If I develop and test my work in firefox, will it work with other browsers in 99.9% of the cases?
This also comes a bit from the recent Opera switch to webkit, where people worry that developers focus on webkit only, leaving firefox and friends in the dust. <comment><USER2> > What browser can give more "guarantees" that what I develop will work > consistently in other browsers?

You're asking the wrong question. What you need to ask is, "which set of test browsers will assure that my work will appear as I intend for the majority of visitors?"

And the answer is: "Microsoft Internet Explorer, Firefox, Chrome, Opera, and Safari".

Set up your work environment so that you can test your results on these target browsers as conveniently as possible. And do all you can to use standard methods -- avoid techniques that only work on one or two browsers, or that break widely accepted browser standards.

> i.e. If I develop and test my work in firefox, will it work with other > browsers in 99.9% of the cases?

Without seeing what you code, this is impossible to say. So test on all the browsers -- don't assume things will work out.

<comment><AUTHOR> First of all, thanks for your answer.

> And the answer is: "Microsoft Internet Explorer, Firefox, Chrome, Opera, and > Safari".

Well, my main issue is that testing in so many browsers, and making adjustments for each one seems to go a bit against the goal of standards.

> And do all you can to use standard methods -- avoid techniques that only > work on one or two browsers, or that break widely accepted browser > standards.

Is there any way one can test/learn this? I would love to have a solid "standards compliant" base knowledge to at least be aware of when I'm doing something outside of standards.

> Without seeing what you code, this is impossible to say.

Of course :) I was talking in a general way.

Once again, thanks.

<comment><USER2> > Well, my main issue is that testing in so many browsers, and making > adjustments for each one seems to go a bit against the goal of standards.

But your goal isn't standards, your goal is to make pages that all your visitors will see the same way. That means you need to adapt to the present realities of Web development.

>> And do all you can to use standard methods ...

> Is there any way one can test/learn this?

Sure -- read the specifications. Examples:

<http://xhtml.com/en/xhtml/reference/>

<http://www.w3.org/html/wg/drafts/html/master/>

My point is that this is not easy to do.

<comment><USER2> I offer this addendum to my prior comment:

[http://www.paulzaich.com/2013/02/21/blog/ruby-rails/https- go...](http://www.paulzaich.com/2013/02/21/blog/ruby-rails/https-gotcha-in- ie8/)

Title: "Always test your app in IE8"

Quote: "A simple 1 character change from 'http' to 'https' on the shim was all that was needed to fix the problem, but it had been lurking there for several weeks unseen because we only were testing on 'modern browsers'."

</comment></comment></comment></comment><comment><USER3> None - sorry to disappoint you, but There Is No Silver Bullet. To be safe, you still need to fully test in all A-grade browsers (this is a moving target, yes; currently the bare minimum is FF,Chrome,IE).

In my experience, whatever browser you work in, expect the result to work with other A-grade browsers in 90% of functionality. Sometimes it may happen to be 80%, sometimes 95%, but three nines ("99.9") is an unreasonably high expectation.

And of course, then there's the _special_ browser : IE. Current versions are juuust about bearable, but users on WinXP are stuck with IE8. Is it worth the effort to have the site look good there, is it worth the effort to have the site kinda work there while looking somewhat ugly, or should you just leave them in the dust? Not really a technical question...

<comment><AUTHOR> I see, what about feature-wise? Is there a set of functionalities that can be considered "cross-browser"?

I guess we're still not there yet (and probably will never totally be :)

<comment><USER3> Check out <http://caniuse.com/> \- it shows you compatibility tables and browser support for most of the functionalities.

As for "core functionality" - much functionality can be faked or unified through abstraction libraries (e.g. jQuery) and compatibility shims (e.g. modernizr).

</comment></comment></comment><comment><USER4> Unfortunately, you really do need to test on all the browsers. That being said, you can have a main browser you develop in and once you finish certain features, do quick tests to see if the other browsers behave the same.

I use Firefox as my main development browser because it doesn't cache files saved on the local disk. Chrome does cache locally saved files, so you need to remember to the clear the cache (Ctrl + F5) after making any changes to your code. This is surprisingly easy to forget and can lead to some frustrating moments.

I do prefer Chrome's built-in console, so I'll often switch to Chrome if I'm going to use the console a lot.

Finally, Opera has a sweet Remote Debugger that's nice for doing client side development for mobile devices.</comment>


Show HN: Sagefy – learn anything, adapted for you. Free - <AUTHOR> https://sagefy.org <comment><USER2> How do they earn money? Is it GDPR compliant? Will my data be sold to disheartened companies?

<comment><AUTHOR> Hey, founder of Sagefy here. Thanks for the reply :)

Currently Sagefy is a side project, so there's no income to speak of. There's some ideas I've had around potential revenue streams, but I want to avoid needless tracking, third party advertising, and pay walls. It's a ways down the road regardless.

I'm not a lawyer so I can't speak to GDPR, but there's a list of everything its currently using: [https://docs.sagefy.org/technology- stack](https://docs.sagefy.org/technology-stack)

Sagefy does not sell or rent data. [https://sagefy.org/terms](https://sagefy.org/terms)</comment></comment>


Ask HN: Twitter is now blocking cybersec tweets? - <AUTHOR> Today was disclosed a vulnerability on the Intel CPUs that anyone on HN can visit: https://gadgets.ndtv.com/laptops/news/intel-visa-sa-00086-exploit-researchers-computer-data-access-2014854
However, when trying to share the link to that page on twitter: that action is blocked. Cannot share the direct link.
I can share any other link. I can even use bit.ly to generate a link and post the new link. However, Twitter is specifically blocking a link from being shared.
This action was recorded on video. Where I try to post the link a few times, and then finally type something else that immediately gets accepted: https://media.giphy.com/media/kiB8T8qeTHCVdUM2oZ/giphy.gif
On twitter I have +9000 followers, a good part related to cybersec.
Is anyone else experiencing a similar censor on their tweets?
Thanks. <comment> who-knows95 can you tweet at the support account?</comment>


JQuery 1.6 released - <AUTHOR> http://blog.jquery.com/2011/05/03/jquery-16-released/

<comment><USER3> This release causes Internet Explorer 6 to freeze just by including the script in the page. This is a non-starter. I'll submit a bug report about it later today, just thought you guys would like to know in the meantime.

EDIT: It looks like the freeze on IE6 might be caused by FancyBox (<http://fancybox.net/> ). Though it didn't freeze with any previous version of jQuery.

<comment><USER4> A reduced bug report would be good. We haven't seen any reports of this elsewhere (and the jQuery test suite runs to completion in IE 6) so I'm not entirely sure what could be happening here. Any insight you can provide (and a bug report) would be appreciated.

<comment><USER5> Simple reproduce case:

The bug is in this block: [https://github.com/jquery/jquery/blob/1.6/src/manipulation.j...](https://github.com/jquery/jquery/blob/1.6/src/manipulation.js#L652)

Note the inner loop is clobbering the outer loop's "i" variable.

<comment><USER4> Oof! That's no good, at all. We'll fix this right away. Thanks for the reduction. Just filed it here: <http://bugs.jquery.com/ticket/9072>

<comment><USER4> The issue has been fixed and integrated into the current build of jQuery: <http://code.jquery.com/jquery-git.js>

We're going to have a 1.6.1 release within the week. Thank you for your bug report!

<comment><USER6> He gets a reward!

<http://rewardjs.com/>

</comment></comment></comment></comment></comment></comment><comment><USER7> I wasn't entirely sold on the splitting up of attributes and properties at first. After all, a big part of jQuery is adding convenience, and this does remove a certain amount of convenience at the end of the day, even if only a little. Then I got to the performance graphs at the end. Those are some impressive speed ups for almost all the browsers (1). The speed + more logical separation seems totally worth it.

(1) Except, you know, ie 7 and ie 8. So... half the internet.

<comment><USER8> I'd prefer the convenience, as I have yet to code up some jquery and think "damn, .attr is a dog", and now I have to refactor a bunch of code before I can upgrade, and the reality of it is that I won't. jQuery is awesome, but this is the first release that I've not wanted to jump all over

<comment><USER4> Which changes (I assume, to .attr()) are affecting you, in particular?

<comment><USER8> Yes, I've since read other comments and have a better understanding of the reasoning behind .attr and .prop, so I'm a little less bah-humbug about having to refactor before upgrading. It appears that search/replace .attr('value') => .val(), .attr('checked') => .prop('checked') are the big offenders, but probably need to look closer at .attr('enabled') and .attr('disabled') as well.

<comment><USER5> Relying on the following attributes as returned from .attr() will break, and should get ported to use .prop() instead: 'checked', 'disabled', 'readonly', 'selected' (for <option>s), 'multiple' (for <select>s), 'ismap' (for s), 'defer', 'noresize' (for <frame>s), 'nowrap'.

List compiled (partially) from [http://stackoverflow.com/questions/706384/boolean-html- attri...](http://stackoverflow.com/questions/706384/boolean-html- attributes/707702#707702)

<comment><USER9> This should be linked to or listed directly in the OP.

Really, most people reading the changelog care about "how do I make my existing code work with this"--and the details listed are conceptual, but not all practically relevant.

</comment></comment></comment></comment></comment></comment><comment><USER10> I love how fast jQuery is progressing, but it does seem that ultimately the separations of various disciplines (particularly this .attr() and .prop() debate) is a step away from the convenience of jQuery-past.

It's understandable though, because helpers and abstractions add bloat and latency to interactions with the various DOM interfaces. And this latency is the price we have to pay for the benefits these abstractions give us - <USER2> include a unified interface to the DOM of many browsers.

The balance of speed vs convenience is very difficult for frameworks like jQuery looking to work for as many people as possible... if you want the convenience at the sacrifice of speed or conversely prefer the speed to the convenience you have one option: build a library specific to your app or your needs.

The rest of us will use jQuery ;)

<comment><USER11> In the case of attr(), the convenience jQuery was adding was an enormous fudge and attempted to gloss over the fundamental difference between attributes and properties, which has directly led to vast confusion and misunderstanding among developers. It was impossible for even jQuery core developers to explain what attr() was supposed to do. The pre-1.6 attr() was a design mistake that 1.6 is attempting to rectify, which must be a good thing (provided it's been done sensibly).

</comment></comment><comment><USER12> I love how quickly they're pushing out these releases. It's awesome to have my applications constantly improving in speed without me having to do much.

Although I'm honestly a bit confused on their explanation of .prop and .attr now... Maybe I should just re-read it slower, or give myself a little more time to wake up. Unless someone would care to explain it in simpler terms for me. ;)

<comment><USER4> Browsers have two concepts for "data that's attached to an element". There are traditional attributes, for example: <input type="text"/> \- doing .getAttribute("type") will get you "text".

Additionally there is the concept of DOM object properties - these are properties that exist solely on the JavaScript implementation of the DOM node. For example .selectedIndex is a property that exists on select elements but isn't actually an attribute.

Previously jQuery conflated properties and attributes (sometimes using one, sometimes using another). Unfortunately, while this creates a result that is perhaps slightly more user friendly, it also creates lots of weird edge cases that are hard to define (such as the cases relating to value, outlined in the blog post). For this reason we've split apart the functionality into two realms: .attr()/.removeAttr() and .prop()/.removeProp().

How does this affect you and your applications? It probably (hopefully) won't. Continuing to use .attr()/.removeAttr() will probably be just fine. Using other jQuery helpers, like .val(), will help to cover over the last remaining bits of weirdness that exist.

In short: Nothing much of serious consequence will likely change, but we're going to actively watch the response from this release and make sure we act appropriately, and swiftly, should major problems come up.

<comment><USER13> Is prop('value') faster than val() now for reading dynamic input?

<comment><USER4> Probably - but that's mostly due to the fact that .val() does more to ensure that the value being returned is useful (such as turning selected options into arrays, etc.).

</comment></comment></comment></comment><comment><USER14> Seems to have caused using an array to specify easing in jQuery.animate to break. Was a bit surprising.

<comment><USER4> Do you have more details on this? Can you file a bug report? Thanks!

<http://bugs.jquery.com/>

</comment></comment><comment><USER15> it's broken Nivo Slider (2.5.1) but a global replace of '.attr(' with '.prop(' has fixed it. Not sure if this is the best thing to do, but it works

</comment><comment><USER16> Switched to it and the animations really look smoother now. Sweet release, can't wait for 1.6.1!</comment>


Visual tool to create impression.js presentations - <AUTHOR> https://github.com/hsivaramx/Impressionist

<comment><AUTHOR> Here's a video showing the tool in action:

<http://css.dzone.com/articles/build-impressjs-presentations></comment>


In chaotic computing, anarchy rules OK  - <AUTHOR> http://www.newscientist.com/article/mg20026801.800-in-chaotic-computing-anarchy-rules-ok.html?full=true <comment><USER2> I'm not sure where the chaos part comes in. Aren't the functions of the logic gates determined by control signals?

Very cool though. Any processor that can reconfigure itself on the fly is probably going to be very useful.</comment>


Ex-Microsoftie: Company today 'a lot like IBM was in 1985' - <AUTHOR> http://blog.seattlepi.com/microsoft/archives/188966.asp <comment><USER2> "I think Microsoft today is a lot like IBM was in 1985. When I started my career IBM dominated the tech world."

In the entire article, this is the only comparison he makes to IBM. He follows with zero support for the argument. It may not be a bad article, but its a misleading title. I worked at IBM starting in '87. I was expecting some meaningful content from someone that knew what it was like working at IBM in '85, but nothing provided.

</comment><comment><USER3> The headline is misleading. He's pretty balanced in his views on Microsoft and Google.</comment>


I just want to say "fuck everything", hold up my hands and walk away. - <AUTHOR> http://werd.io/entry/5213969abed7de1978b43b2d/government-the-last-great-gatekeeper-is-ripe-for-disruption <comment><USER2> Here's the really insidious thing about the whole situation, and something that I don't think has gotten enough airtime:

We are all at the mercy of the people in our social graphs who don't keep things secret. _I_ might stay off of Facebook, encrypt all my email, and avoid using smart phones, but anybody I'm in contact with who _doesn 't_ is being continually mined. Shadow profiles of me are showing up on services I'd never use willingly because my friend shared their address book with Facebook.

We really only have three groups to hold responsible: ourselves (for developing these technologies), our government (for using these technologies to oppress us), and every other citizen (for voting the government into power and playing along when we ask to mine their data).

The core issue we're seeing is that it is no longer really possible to ignore the fact that most consumers are liabilities to our privacy, and that they'll gladly sell out their fellow man for the dullest of shiny trinkets.

Honestly, the most insidious part of all this isn't our loss of privacy or our trust in some beneficial Big Brother: it's the distressing fact that we can't trust anyone else anymore, and that we've shown that democracy is impossible with such an unworthy populace.

Make no mistake-- _that 's_ the real tragedy here.

<comment><USER3> > _Shadow profiles of me are showing up on services I 'd never use willingly > because my friend shared their address book with Facebook._

Is that really so bad? The worst I've seen is "this is a picture of John" which is not an abuse that's limited to social networks. And if this happens really often, you can complain to your friend about it. And if you can't complain to your friend, you can complain to abuse. And if abuse doesn't do anything (not likely) you can send a legal notice.

To jump from "a friend can mention me, talk about me, etc." to "there is no privacy anymore" is...well, I just can't get there, sorry.

Do we have privacy problems? Yes. Are these examples really selling that? No. I can't remember any case in which a friend sold me out for a trinket; if you do have a common example, cite it. That would really help us all here.

<comment><USER4> _Is that really so bad? The worst I 've seen is "this is a picture of John"_

Yes, it is - when there are a bunch of "this is a picture of John" posts mostly by identifiably pro-1st/2nd/4th/10th Amendment[1] types, facilitated by face recognition software confirming it's the same John, whereby data mining can determine that there is an un-tracked person named John who is most likely a pro-1st/2nd/4th/10th Amendment type and, because of his pointed absence from social media, likely rather hardcore about it and worth tracking with particular interest.

Tom Brown (famous tracker) tells a story of his tutor telling him "go to the grandfather tree." He scoured the woods for the curious plant, and found nothing. Standing in a clearing wondering what was meant, he realized that the space he was standing in - an unusually empty space in an otherwise dense forest - must have been created by a very large and very old tree that had subsequently fallen and rotted away, leaving a space other trees had been unable to grow in. Moral: an apparent absence can, coupled with identifiable effects, be indicative of something very interesting; to wit if there's a lot of pictures of someone but nothing from that someone he's probably hiding something.

[1] - terms for various passionately-defended civil rights here

<comment><USER5> It's really scary that we're at a point where _not_ using social media can reveal something about you.

If they somehow manage to get an IP address associated with the shadow profile, they can use XKeyScore to see which websites you've visited. If they see you've been reading a lot of articles about the NSA ordeal, browsing wikipedia a lot, visiting websites related to cryptography and visiting a website called _hacker_ news, they'll target you as 'politically dangerous' and you'll be put in the 'nihilist, anarchist, hasn't talked to the opposite sex in 5 years'-list.

<comment><USER6> You really think they have a special state-security list for _nerds_?

<comment><USER7> Of course they do! We nerds are the smartest people in society and frankly everything would fall apart if it wasn't for our intellectual heroism. Naturally this makes us the #1 threat to the Evil Overlords, with whom we shall soon have a final showdown on the fields of Nerdageddon.

<comment><USER6> Well damn, nothing on my Bitbucket profile can be weaponized!

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> It is heartening to read that a small percentage of the technical community is now willing to admit that the majority of the developed world's problems are political. Specifically, the metastasising bureaucracy which is emboldened with each successful power grab is becoming increasingly difficult to dislodge since they've built up so much momentum.

This is an excellent start, but a mere tip of the iceberg. The political malady is more malignant than most imagine [1].

1\. [http://www.salon.com/2013/08/17/chomsky_the_u_s_behaves_noth...](http://www.salon.com/2013/08/17/chomsky_the_u_s_behaves_nothing_like_a_democracy/)

<comment><USER9> The sad thing is that even among the people willing to admit that the majority of the developed world's problems are political, most of them are under the delusion that more/better/different politics is the solution.

<comment><USER6> So you're an anarchist?

Because if you're going to pretend that anarchy or proprietarianism is somehow _not politics_ , then I've got some news for you.

<comment><USER10> Or a libertarian, pretending that a police state enforcing a total ordering of property and any contract that can be conceived of isn't politics.

<comment><USER11> I wouldn't call any person who advocates an oppressive police state a libertarian.

<comment><USER9> pessimizer's point is that he believes the very institution of property requires something he calls a state. I would disagree, and point to the fact that territorialism in the animal kingdom is an institution of private property without anything most people would call a state.

</comment></comment></comment></comment></comment></comment><comment><USER12> The problem with all of this "make the gov't own up and stop the spying" thing is you can't prove what is hidden. The NSA could make a statement tomorrow saying "ok, you win, we'll stop" without really stopping. They could even give an actual compelling argument about stopping, without really doing it. There's no way to prove they aren't doing it (though I suppose that ties into the fact that the big tech companies are also allowing them to do it).

<comment><USER13> Yup.

Even in the best case scenario ([http://en.wikipedia.org/wiki/Stasi#Recovery_of_the_Stasi_fil...](http://en.wikipedia.org/wiki/Stasi#Recovery_of_the_Stasi_files)), encrypted electronic files are easier to shred than paper.

</comment></comment><comment><USER14> There is actually a huge vacuum right now and it's in the "country" space.

There is an opening in the market for a well-run nation-state that offers (1) independence, particularly from US influence, (2) pro-entrepreneurship, pro- technology, pro-science, extremely nimble governance, (3) accessibility to all of the world's educated people (hand-selected individuals chosen based on their skills), (4) safety, (5) low, efficient taxation, (6) communication privacy (7) banking and transaction privacy, (8) high quality education.

Basically, just as global banking has its Switzerland, its Hong Kong, its Singapore, global internet/cloud and the tech community needs its own haven.

Not only that, this country could also fill in the banking privacy niche as well. Read up on FATCA and how it's violating the privacy of millions of Americans living overseas.

I wish this country could be a New Zealand or Australia but unfortunately they are completely beholden to US interests and would never be able to be independent. I really believe there is huge demand for an "elite" city-state that fills the needs I've described above but there's absolutely a market failure.

This new country would likely not be democratic but run by a powerful technocrat, probably a Jobs or Musk type, perhaps with a Board of Directors. The corporate model seems to work.

</comment><comment><USER15> Problem is, you have to sell the idea of accepting a perceived risk.

We have to ask the public if it is OK that every now and again really bad stuff may happen, and NOT to blame the politicians for it. Because, in the end, that is why politicians want to do _everything in their power_ to remove risk. Why? Because we demand it. Something goes wrong, we blame them. We find any way possible to blame them, and demand to know why they didn't stop it.

Now, I am happy and always have been happy to trade freedom for risk. Question is, is any one else?

<comment><USER16> Do you mean you are willing to trade risk for freedom? As in accept some risk for more freedom?

</comment></comment><comment><USER17> When I was young I always daydreamed about being a programmer/hacker in a dystopian cyberpunk future.

I don't know whether or not I should be alarmed that my daydreams and reality are converging.

<comment><USER18> It's not true cyberpunk future until we have Rebel-brand leather pants.

</comment></comment><comment><USER19> I've been feeling very similarly recently. Most people here in the UK don't understand or care about the privacy issues being revealed. I'm just one very small fish in a big ocean of ignorance. And frankly; I'd like to be ignorant too.

Maybe I should chuck it all in, buy a canal boat, and carve wooden spoons for a living.

<comment><USER20> There is, in Birmingham UK, a chap who regularly ties up to the mooring on the Selly Oak canal, near the Vale University residence, who makes and sells wooden owl sculptures and stools for your garden.

He has an iPhone, and I _think_ I saw him on facebook last time I walked past.

Perhaps what we are seeing is the 'normalisation' of the Internet/Web? It is no longer 'special' or a 'new world' but just a part of everyday. That means the balance of privacy/disclosure will have to be negotiated again. In the street, I can be stopped by a police constable and asked my name, date of birth and address. My bag can be searched, and I can be asked to turn out my pockets. The police would need a search warrant signed by a magistrate to enter my house. Magistrates are trained, they will only sign warrants under certain circumstances.

Is Facebook the street or your house?

I'm still thinking all this through... but yes, I think you will see a shift away from splurging everything over the Web. Of course, the people GCHQ are supposed to be trying to catch will already have adopted other communications methods...

<comment><USER21> Are you sure he's not a witch?

Try asking him about cakes that can change your fate. :)

<comment><USER20> I'm not having any of _those_ cakes thank you very much.

Seriously, there is a bit of 'maker culture' happening round here at present. Quite nice but the 'pieces' tend to be expensive.

<comment><USER19> Yeah Birmingham seems to have become quite trendy, especially around the Jewellery Quarter too. Cardiff hasn't quite hit the expensive end yet, and there are a number of decent little galleries cropping up with craft work, which is great to see.

</comment></comment></comment></comment></comment><comment><USER22> I loved the comment:

 _" Friends don't let friends use cleartext," my friend Marcus Povey writes. I'd argue that friends don't let friends put their trust in algorithms that can be backdoored, socially engineered and compromised without our knowledge._

Somehow I feel too that technology cannot be anymore the only answer to the problem of global surveillance. I think there is a growing need for change of our social consciousness about the values that we want to survive.

<comment><USER23> Absolutely it's not the only answer. But it's still and always will be a critical component. It's illegal to trespass, but we still use fences and gates and locks to keep unwanted people out of our property.

<comment><USER24> The difference is that we don't erect fences to keep the government out of our yards, because the government is supposed to be us and the government is not supposed to be trespassing. This, as opposed to bad guys who break the law.

In other words, the government is supposed to enforce the law when someone hops your fence. But where do you go for justice when the government is the one hopping your fence?

This is not being pedantic. I believe it is the wrong posture to advocate for a technology-based response. We should not be building fences against our government. It implies that a continuing adversarial relationship between the people and our government is on some level acceptable. And, it sends the message that whatever the government can access is fair game.

Instead, we should demand that the government be brought back into the will of the people and Constitutional principles _by law_. And it should be backed by not only true whistleblower protection, but _obligation_ for fear of conviction by complicity.

<comment><USER25> Well put. Is it possible to fight against the police state without putting technological fences around it?

<comment><USER24> I would say that the degree to which we defend ourselves with fences is the degree to which we are "losing". The very need for fences is born of government encroachment. If we constantly need more, better, and bigger fences, then it can only be a measure of the degree of this encroachment.

And, ultimately, this cat and mouse game is one that we will lose. The government has unlimited resources, including those which we ourselves contribute, ironically. And, of course, the government has the law on its side. Therefore, it is only by changes to this law and subsequent real enforcement that we have a hope. Otherwise, they will use the force of law, including these very powers that we are trying to curtail.

There is no "winning" against this, save for a reclamation of the law.

<comment><USER25> You have a very valid point. But until the law is changed significantly so that you say "we, the people" have our freedom, do you think technology should be used to protect against government? Or do you recommend citizens abandoning their fences and working to change the law?

</comment></comment></comment></comment></comment></comment><comment><USER26> I'd like to hear what others are doing. This events of the past few days have prompted me to a few measures. What is everyone else doing (or have done)?

Since the NSA story broke up until today I have done (or in the process of doing): Pidgin XMPP + OTR. Switched to DuckDuckGo + StartPage for searches. Email hosted on my own server. File backup off the cloud and on to a SSH/SFTP server in house. Thunderbird + Enigmail (PGP): sending emails out signed only at the moment and explaining why. Firefox + many privacy add-ons. No private communications over social media networks.

</comment><comment><USER27> _> We have to learn how to play politics. There will be voices who call for revolution, or who publicly declare that playing this game is tantamount to aligning ourselves with government. I don't believe that these are productive discussions._

It's not aligning yourself with government, it's begging your masters to throw you a bone. What kind of incentive do you think a protest creates? Would politicians suddenly shut down all surveillance programs simply because people on the streets are protesting? If you were a politician, would you? Not likely. You're already elected, you're paid and you have private interests at your back who DO pay you money that directly depend on your ability to pass laws in favor of those interests. The best a protest can do is to incentivize government to create an appearance of change.

Look at history. Protest rarely solved anything. They either transformed into bloody revolutions (which didn't do any good either) or were largely ignored. No, you don't need to protest. You need to ignore the government as much as you can and tell others to. Use Bitcoin instead of govt currency and don't pay them a cut in the form of taxes, use Bitmessage instead of email, use VPN and TOR, don't send your children to school where they are indoctrinated. And never ever vote. Voting is begging your masters. Have some pride.

<comment><USER28> _don 't pay them a cut in the form of taxes_

Illegal. You will be jailed for a very long time. Not something the I, or the average Joe Schmoe, will be willing to risk.

<comment><USER27> I certainly wouldn't advocate tax evasion, it would be immoral to ask people to risk the leftovers of their freedom and confront IRS. What I meant was, don't give them a cut unless your transactins can be effectively tracked. When you tip someone in cash, most likely they're not paying any taxes from that. And there's currently no law requiring you to pay taxes in Bitcoin unless you previously converted it to fiat. Also keeping your savings in gold, silver or Bitcoin saves them from another tax - inflation.

<comment><USER29> The government presumes that tipped workers get a certain amount in tips, and taxes as if they got it.

</comment></comment></comment></comment><comment><USER30> > Hey, everyone! I live in California, my email is hosted by Google, I keep > documents on Dropbox, and my server is hosted in Dallas, Texas.

I like it. I'd add the last sentence below:

I live in California, my e-mail is hosted by my server located at a data center in Los Angeles, I keep documents on my personal servers, and those servers are hosted in my data center and at my home. I use GPG, and my key is...

</comment><comment><USER31> In addition to the other problems mass surveillance has done, it has done something akin to spreading toxic waste in a playground. Who would want to play in that?

A big part of technology is playful. A big part of playfulness is pushing boundaries: What if everyone had everyone's genome? What if we injected computers into our bodies? In a surveillance state that is as appetizing as bathing in industrial effluent.

The technology industry is poisoned, and the only enthusiasts left are enthusiastic authoritarian snoops, and those people are disgusting sickos. It's like waking up and finding you work for the TSA and fondle balls for a living. Ick.

</comment><comment><USER32> It would be interesting to start applying filters on email based on recipient MX. i.e. if I see your MX is @yahoo.com, I don't send the mail (or send a mail suggesting you move to a better mail provider). Depending on who I am, I may or may not send mail to gmail. If I see it's a self-hosted well configured MX, I probably will send mail and trust in starttls.

(You can't just rely on domain extensions due to things like Google Apps for your Domain which lets you customize the domain.)

</comment><comment><USER33> I like the idea of stating your communication preferences but it seems strange to put that right in your bio like he's done at [http://werd.io](http://werd.io) as if where you keep your documents says a lot about you as a person.

Unrelated, this was difficult to read with that blog styling. "font-size: .9em" for body text seems like a bad idea. Raising the font-size and line- height makes this whole site look much cleaner.

</comment><comment><USER34> Should we all automatically forward all our incoming email to Obama

<comment><USER35> THAT would be great. Some poor intern gets flooded with email until the entire WH server infrastructure melts. Of course, you'd definitely be packed off to Gitmo for your act of terrorism.

</comment></comment><comment><USER36> A little chris hedges , Cornel west and Noam chomsky is in order.

</comment><comment><USER37> Brilliant. With an Office Space reference thrown in for good measure!

</comment><comment><USER38> These incidents seem like coming straight out of "Atlas Shrugged". different circumstances, similar outcome and government is the reason for the events.

<comment><USER6> _There are two novels that can change a bookish fourteen-year old's life: The Lord of the Rings and Atlas Shrugged. One is a childish fantasy that often engenders a lifelong obsession with its unbelievable heroes, leading to an emotionally stunted, socially crippled adulthood, unable to deal with the real world. The other, of course, involves orcs._

</comment></comment><comment><USER39> I think most of the outrage is about two things, which are missed by people who point out the problem is political and that snooping is technically "legal":

1) The disconnect between policymakers / lawmakers and the general population, that built up over time. While in some areas people are content to look away, or don't care that much about, in the area of civil rights and privacy apparently enough people care to keep raising a stink about this. It's not that something is technically illegal. It's a question of how did we get to the point where it's not. Where you don't need a warrant to read anyone's email, or demand any US company hand over pretty much any info on anyone. Where are the 3-branch checks and balances for things like National Security Letters, for example?

[http://i.imgur.com/GPyb5uC.jpg](http://i.imgur.com/GPyb5uC.jpg)

2) The natural people's reaction to advancing technology. Since recording everything everywhere is now becoming possible, we should get used to it. We are unlikely to successfully outlaw this anymore than we can successfully police pirating of songs. If governments aren't going to record you, corporations will. Facebook keeps a "shadow profile" on everyone including people who didn't sign up. They use this data for various corporate purposes. All we can do is perhaps regulate what purposes they cannot use the data for, but it's extremely hard to prevent them from collecting it. So organizations will collect data, because it's in their interest -- stores, for example, will soon track your shopping habits as you move around the store, and optimize their sales for this. They might do facial recognition or some other biometric thing.

#2 is the more interesting issue and I think it falls into the bigger issue of people coping with advances in technology. Google glasses on everyone's head? Cameras everywhere giving you a ticket as soon as you speed over the limit for 10 seconds? (Don't laugh, we already have many tollbooths implementing speeding tickets by simply timing how long it took you to get from one to the next.) Cameras in every parking lot signaling the tow truck as soon as you leave? 3d printing guns from models? Anyone able to release a virus on a subway? Etc etc.

I've always said that terrorism is a problem of technology. 1000 years ago it was literally impossible for 5 people to kill 1000, but nowadays our society will begin more and more to watch everyone. As it becomes easier, surveillance (and, what's more unnerving, automatic curation and analysis by computers!!) will become an accepted part of life. Remember how you felt when you thought you could upload copyrighted stuff to YouTube and get away with it?

Before: [http://www.codinghorror.com/blog/2007/10/youtube-the-big- cop...](http://www.codinghorror.com/blog/2007/10/youtube-the-big-copyright- lie.html)

After: [http://www.codinghorror.com/blog/2010/09/youtube-vs-fair- use...](http://www.codinghorror.com/blog/2010/09/youtube-vs-fair-use.html)

Here we have a case of "big brother" copyright enforcement being made possible through cross referencing the fingerprint of EVERYTHING uploaded into YouTube. We learned to live with it, and few people complain. But this is just the beginning :(

10 years from now, your children may get taken away by the state because you have been caught surfing the wrong sites or saying stuff to siri (uploaded to Apple servers) that has been proven to correlate highly to child molestation or neglect. It won't happen right away, but instead an indexed archive of your activities will be retrieved and analyzed and a case built.

And if a government doesn't do it, then an insurance company might do it to raise your rates, etc. If you park your car in a parking lot and do not enter the diner within 5 mins, as determined by the computer, you'll get an automatic ticket. And so forth.

Thankfully many of these problems will be eliminated before they even become issues. You won't have to park your car because self-driving cars will make owning a car a luxury. You won't need to worry about your kids' college future because education will be delivered via the internet to every home. Etc.

<comment><USER40> You seem to be conflating a few things here. The "expectation of privacy" is what really matters. The technological advances are a means to an end. If you expect privacy in filming your family gathering in your private residence, then Google Glass or no Google Glass, you would not expect the world to see. In fact, one could argue that the idea of "circles" in G+ creates the expectation of privacy by giving you a (false) sense of control over who has access to it.

The 4th amendment language is really quite amazing: "The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no Warrants shall issue, but upon probable cause, supported by Oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized."

When I think "papers, and effects" in today's world, that includes my smartphone, computer and all "papers" that are handled by Google and any other provider or stored on any medium I can possess. Just like people of 200 years ago did not expect others to read their mail, I don't expect it now. (Though I understand that it is now common practice.) Unfortunately, because such concepts have been abused and twisted in the court of law, Google now finds itself compelled to argue that there is no reasonable expectation of privacy when using email[1]. Do you expect your postman to read your letters too? Are these that different from an email?

If we, as the society (or the people), establish clear boundaries on what we expect and demand it, all will be fine with the world. A "shadow" profile on Facebook aimed at selling ads is a far cry from contents of my private correspondence. In fact, I welcome more relevant ads - they are less annoying. But that does not mean I will expect that there is no boundary between my private and public persona.

[1] [http://www.forbes.com/sites/gregorymcneal/2013/08/20/its- not...](http://www.forbes.com/sites/gregorymcneal/2013/08/20/its-not-a- surprise-that-gmail-users-have-no-reasonable-expectation-of-privacy/)

<comment><USER39> I'm saying I think technology will turn us into Eloi from te time machine. Or the borg.

</comment></comment></comment><comment><USER41> you and me both buddy.</comment>


Simple IPFS Browser and Uploader - <AUTHOR> https://ipfsbrowser.com/ <comment><USER2> Do you pin the file for a period of time? How do you cover that cost?

<comment><AUTHOR> Funded by VanwaTech</comment></comment>


Tim Cook promises monthly reports on Apple supplier working conditions - <AUTHOR> http://www.theverge.com/2012/2/14/2798303/apples-tim-cook-chinese-working-conditions-monthly-reports-fla

<comment><USER2> Why is everyone so fixated on just Apple? I am sure these type of conditions and issues exist for the majority of companies manufacturing in China.

I believe that we should be just as outraged with everyone who is, in essence, supporting these practices. I am aware that outsourcing involves giving up some control but it doesn't absolve one of moral and inhumane abuses caused in the process.

<comment><USER3> At the moment, it really seems like the only reason Apple is being fixated on is because they're the ones that are publishing some of the most detailed first-hand accountings of what's going on within their supply chain. Greater transparency, in this case, is translating to a disadvantage. I don't think they're the only ones, but some cursory Googling reveals plenty of companies with codes of conduct, and some even with detailed explanations, but few if any with detailed reports, annual or otherwise.

In essence, they're being proactive—in part because they can afford to be—and getting skewered because they're giving people a peek under the hood.

That's one part. The other is of course that they are wildly profitable, in part through large profit margins, and the question arises of "can't you cut into those margins to pay your workers better". Though this latter one is not only true of Apple, Apple is perhaps one of the most visible companies to whom it can apply.

<comment><USER4> Also, they are the most successful and wealthiest company in the world.

</comment></comment></comment><comment><USER5> Good. Apple has the resources to follow through and do it right. Follow through and set the bar high for the rest of the industry to follow.

</comment><comment><USER6> Gruber said it best: This is the biggest challenge facing Apple today.

<comment><USER7> Isn't this sad? This should be no matter at all, bad working conditions is something of the past century. Enabling the next revolution should be the biggest challenge for them.

<comment><USER8> Worker rights in China are still in the early 1900s, or worse, their policies are feudal.

<comment><USER9> Kind of ironic that the appalling working conditions of the 1900s are largely what gave rise to communism. Although based on what I know, the average 1900s factory worker would have sold their mother for Foxconn's working conditions.

</comment></comment></comment></comment><comment><USER10> Either they took worker's conditions very seriously, or they didn't. I have no tolerance for sentences like this:

> Apple takes working conditions very, very seriously, and we have for a very > long time.

When put in context of all the stories tha have come out, obviously their "[..] very serious and long [term effort]" is a failure. 84% compliance? with what? _not_ abusing their workers?

I look down on Apple for their deplorable behavior, but I look down on most everyone, so please do not confuse my disgust as a unique disgust with Apple.

<comment><USER9> All the other manufacturers are worse. Apple is just the only one who publishes reports about it, and so for some reason they get pilloried for it. Apple does seem to take it more seriously than anyone else in the industry. If anything, they should be commended for their level of transparency and their continued, explicit efforts to improve things.

</comment></comment><comment><USER11> 84 percent compliance on no forced overtime isn't great, but it gives a guy like me hope that I can own an iPhone 5 without having blood on my hands.

The pressure must remain on Apple to put human beings first, before profits. That hasn't happened in a convincing fashion yet.

<comment><USER12> 84% compliance isn't great, but you still see "coerced" overtime in western countries. I picked my wife up at 9:30 on the day before Christmas eve as she had no choice but to finish her work (she works for a law firm and the deadlines if not met can cause a multi-million dollar case to be thrown out). Even though I know it was necessary for her job, I can't agree with employers doing this. The lawyers make 6 figures minimum (her lawyer is a senior partner and gets a share of the company profits so well above 1 mil a year). Yet my wife makes $35,000 and has to bust her ass yet they can't afford to hire anyone else so their workers aren't constantly running on deadlines.

At least my wife's lawyer will not allow her (no arguing) to get paid overtime pay. If she works late, she gets the time off. Some of her coworkers have been paid almost double their wage in overtime pay because the company won't hire them more workers. This is illogical to me. Why pay someone double for 65 hours when you can pay two people for 80 hours.

</comment></comment><comment><USER7> The quick distraction to the unrelated "We also believe that education is the great equalizer." what has nothing to do with the average Foxconn worker. Sounds totally like a PR move and shows no personal relation to the subject.

This is something Jobs never did and was for me part of the magic of the brand. Cook has no public personality. Apple makes now without Jobs a cold and frightening impression to me. Even Ballmer with his weird personality makes Microsoft human somehow.

Apple has to do something really revolutionary again (not just milking their cash cows and an iOS TV device), to win the magic back. Imagine what is theoretically possible with 100B, but who in the company has the vision and enough leverage?

</comment><comment><USER13> A lot of people have tried to excuse Apple using a variety of methods (citing Krugman, pointing to Samsung's use of Foxconn etc), but they all ignore the fact that Apple is breaking a fairly important social convention.

When a person pays premium for a product, they don't just expect quality, but they want to feel good about their purchase as well. When you buy Direct Trade coffee/chocolate, you know more of your dollars are going in the hands of locals, when you purchase food at a Farmer's market, you know you're supporting small-scale local farmers, when you buy Canada Goose, you know you're supporting decently-paid and treated workers in Ontario. OTOH, when you buy an Apple product, you're supporting the same kind of supply chain used by low-cost manufacturers. With them, you pay premium dollar, but don't get premium experience. The fact that this extra profit simply goes to Apple's coffers (not even dividends, or R&D or charity) is particularly galling.

A few years ago they got pilloried by Greenpeace and that forced them to clean up their act, so I'm glad they're once again getting pilloried.

<comment><USER14> I associate Apple products a lot more closely to luxury goods than the sort of socially-conscious products you mention. Apple did that (RED) promotion a while back with their products, but that is as close as they have come to putting forward a socially responsible face.

I don't think consumers expect luxury brands to compensate their workers more, though it would be nice if they did.</comment></comment>


Signs You're Working in a Feature Factory - <AUTHOR> https://hackernoon.com/12-signs-youre-working-in-a-feature-factory-44a5b938d6a2#.youlg4ec7 <comment><USER2> Great article, it pinpoints the issues that leads devs to complain about "politics" and "bureaucracy" in a company. I think the lack of introspection can really wear engineers down.

</comment><comment><USER3> Would be interested to know what to do when you work in a feature factory and want to turn the place around</comment>


Facebook coin reportedly underdevelopment in Switzerland - <AUTHOR> https://www.cnet.com/news/facebook-coin-reportedly-under-development-in-switzerland/ <comment><USER2> We do have a large crypto community here, yes. The only instance of FB I knew of in Switzerland is a computer vision startup that was bought by Oculus.</comment>


The trouble with soft delete - <AUTHOR> http://richarddingwall.name/2009/11/20/the-trouble-with-soft-delete/

<comment><USER2> A million inserts into a table a year is causing performance problems? Assuming 200 work days and all accesses being in a four hour period that is about one row inserted every three seconds. DBs are not my bag, baby, but that presumably should not be killing you.

At the day job, when we do a soft delete as defined here, we tend to create a view of the active rows in the table. Accessing through the view rather than the table prevents many of the "Whoopsie, missed a WHERE clause, now I'm summing over deleted records" errors. I'm told it also improves performance but take anything I say about DBs with a grain of salt.

<comment><USER3> We use soft deletes in our system (primarily because we _have_ to maintain all data), and we use views to retrieve results. The views also flatten the data a bit, joining appropriate tables, which again simplifies queries.

</comment></comment><comment><USER4> _For example, in our job board application, we might store open, expired and filled listings using a table-per-class strategy: [image of some class hierarchy]_

That ain't no _man's_ soft delete, boy. You want to know what soft delete is? Well that's too bad, cuz there ain't no delete. Move from one table to another? What in tarnation?

Boy, you need yourself the sequence of actions that produce some kind of result. You don't store the result itself, ya'll just go an' fuck it up or something later. "Posted a job offer for Tractor Operator at 2009-11-21.12:44:26." See, that there's an action. "Accepted job offer for Tractor Operator." There's another action. Now what's the status of that job? You get your list of actions, then figure it out. Yes, it's taken, you would have just injured yourself on that tractor anyway.

</comment><comment><USER5> Dingwall lumps a number of separate issues under "soft delete": undo, audit trails, soft create, and performance in the presence of historical data. He presents several solutions, not all of which I would buy.

The is_deleted column is a pretty simple solution that we all use and there are a number of solutions to the problem of retrieving only the active columns, such as views.

Audit trails and performance are more interesting. A while back I worked for a web analytics company and we had the problem of the storage and performance costs of historical data. Only the 5% of the data was of any real interest, but the 95% historical data made writes slow because of the large number of indexes. They adopted the solution of historical tables with fewer indexes on cheaper drives.

I like the solution of serializing historical, deleted, and audit data and storing them in a NonSQL database of your choice. Then you can bring them back as individual undos, or into a data mining database for scenario playing.

I dont particularly like his suggestion of creating separate tables for each state of an element. I think that's needless complexity.

<comment><USER6> > but the 95% historical data made writes slow because of the large number of > indexes.

Why does updating an index take more time if there are many table rows?

i.e. if you have 5 indices on a table and 1 write/second, what's the difference in the work done by the db whether there are 1000 rows or 100k rows?

<comment><USER7> Simple explanation: Most database indexes are forms of B-trees. Insertion into a binary tree isn't constant time O(1), it's usually O(log n).

<comment><USER6> Thanks, I was thinking in terms of hashes (which doesn't really make sense for searching/ordering).

</comment></comment></comment></comment><comment><USER8> Separating one table into multiple tables based on status has caused me a lot of pain over the years. Now I have multiple tables I need to join together more often than I would hope. Is this really the best way?

</comment><comment><USER9> I read this article and the entire time I was thinking how easy this problem is solved with a good ORM, like in Django.

All I do is setup two managers, one the default so in the admin I can browse my records without any filtering and then a second one which I use exclusively in my views that simply adds .filter(hidden=False) to the get_query_set method. So simple, and have never ran into any problems.

</comment><comment><USER10> Always record the date of the soft delete. That way you can have a daily process to move records x days old to a historical table.

If it's something like a rapidly changing customers list then delete any customers where the soft delete date is greater than three years old.

</comment><comment><USER11> So Richard basically claims that one of the big problems with soft delete is that, from now on, all queries against the table have to add a where clause excluded soft deleted rows; he claims this is some sort of tax.

Is he that ignorant of what a reasonable ORM (or at least, Ruby on Rails) will do for you? eg named_scope, etc...

<comment><USER12> Yes, he is. I could implement the soft-delete feature in the database, write one class (that sets up the queries chained off of it to be aware of deletions), and then substitute that class for the original via the dependency injection system. Total effort? 15 minutes. Total changes to the application logic and the code that actually queries the database? 0.

If you are writing PHP, where you hard-code a query and then print out HTML as you iterate over the result set, then sure, you're fucked. But not because of soft deletes.

<comment><USER13> That only works if everyone you work with religiously uses a single ORM and dynamic programming language, because it makes calls to that ORM the only (cumbersome) query language that gives correct results. It doesn't fix the ad hoc SQL query your marketing guys are pasting out of email from a developer who went to another startup last year (yes, I have seen this happen).

<comment><USER11> Yeah, but any sql query can go stale...</comment></comment></comment></comment>


Simple Metaprogramming logger with graph generation - <AUTHOR> http://gilesbowkett.blogspot.com/ permalink here http://gilesbowkett.blogspot.com/2008/03/simple-metaprogramming-logger-with.html sorry, although you will see some more good stuff at the main link <comment><USER2> Don't know if it's possible for anyone to edit posted links, but this is the correct link for this article: [http://gilesbowkett.blogspot.com/2008/03/simple- metaprogramm...](http://gilesbowkett.blogspot.com/2008/03/simple- metaprogramming-logger-with.html)</comment>