Guix-tox, a functional version of tox - <AUTHOR> http://blogs.rdoproject.org/7843/guix-tox-a-functional-version-of-tox <comment><USER2> I honestly skimmed the article and didn't read it deeply because I have to run in a bit. But the fact that GUIX is a language-agnostic package manager sounds very neat. I write Go code and one of the things I had to cope with in the beginning was not having a really good package management system. Go still gets criticized for this (although we can always vendor our apps/packages to make sure all dependencies are included). It seems as though GUIX could be used as a package management solution in Go. It might be worthwhile for someone to write a tutorial on GUIX + Go dev.

<comment><USER3> IIUC Guix lakes "genuine" Go compiler but support GCC's Go.

It's not only Go that miss a "complete package management system". IIRC guix- tox can replace both regular CI system and python-tox as test runner.

<comment><USER4> I'm working on the Go compiler support. A small hitch in cgo compilation and then it'll be done. Have to work with the Guix maintainers to get the package up to snuff as well.

</comment></comment></comment><comment><USER5> Naming collision... [https://tox.chat](https://tox.chat)

<comment><USER6> AFAICT tox the python testing/virtualenv tool predates Tox the chat tool.

<comment><USER7> Yep, initial commit for tox is 2010. tox.chat is 2013.

</comment></comment></comment><comment><USER8> This sounds great. For projects that use lxml/numpy/scipy/pandas this could be a real help for getting set up on different machines especially if there is some kind of caching that can be done for the built packages.

It's a shame it can't use all of PyPI though.

<comment><USER9> >It's a shame it can't use all of PyPI though.

People often have this disappointment about Guix not being some sort of meta- package manager that can use any package format right off-the-shelf, which I think is caused by a misunderstanding of how the system works. Guix packages describe the _precise_ dependency graph of any piece of software, all the way down to the C compiler's compiler. A package on PyPI, or anywhere else for that matter, does not. For example, Python eggs that build native extensions need certain shared libraries and C header files available on the system before they can be installed, but PyPI has no way of installing those things or otherwise capturing that information in a precise way.

However, us Guix devs can, and should, make it easy for users to take the metadata for a package available in another system such as PyPI and produce, to the best of our ability, a Scheme snippet that gets one most of the way to a working Guix package. We wrote the 'guix import' utility for this purpose. Right now, it can generate Scheme snippets based on packages at PyPI, CPAN, Hackage, ELPA, RubyGems, and CRAN. The user can take the output of the importer, and add the (hopefully few) missing pieces, such as the C library a Python native extension needs.

<comment><USER10> If I import a new package, what is the effort required to submit the new definition into the guix repo?

Is that also integrated with the guix command line tool? If not, why not? It would be super neat :)

<comment><USER9> Roughly:

\- Clone the git repo, build Guix, and run the build daemon

\- Add the Scheme code for the package recipe to the relevant module

\- Run 'guix build' to make sure it builds and runs

\- Run 'guix lint' to catch common style issues

\- Make a commit

\- Send patch file to our mailing list

Full details about contributing can be found here: [http://www.gnu.org/software/guix/manual/html_node/Contributi...](http://www.gnu.org/software/guix/manual/html_node/Contributing.html#Contributing)

I welcome you to give packaging a shot. The IRC channel and mailing list are full of nice people that can help you if you struggle with something or encounter a bug.

</comment></comment></comment></comment><comment><USER11> Since each language has a language-specific but OS-independent package manager, this is a language-independent but OS-dependent package manager?

<comment><USER12> I've never understood why there isn't a "meta-package manager" that gives you one OS-and-platform-neutral CLI tool for invoking whatever the most relevant package management tooling would be, and then polyfills in the differences.

At a base level, I want to just not have to care whether I need to "brew install", "gem install", or "npm install -g" something: just give me one namespace and put everything I need in it once. If the tool could do just that, I'd be sold.

However, I can't see why there couldn't be a more-complex namespace-mapping database, such that I could e.g. export an installed-above-baseline package- list from Ubuntu and import it into OSX, or Windows+Cygwin, to get equivalent effects. I wouldn't need the same _versions_ of anything, necessarily; just the same commands and libraries.

<comment><USER9> >I've never understood why there isn't a "meta-package manager"

Because it's a fool's errand. The resulting mess would be the lowest common denominator of all the supported packaging tools. All of the various language- specific package managers do not touch things outside of their domain, leaving huge gaps to fill in. How would a meta-package manager know that installing the pg Ruby gem required having the PostgreSQL shared library and header files available at build time? What version of that library would it use? How would you reconcile where each package manager installs things? Traditional system package managers install to the global /usr directory. npm makes nested directory structures anywhere. Brew installs to /usr/local. How would you deal with the source vs. binary based package managers? Centralized vs. decentralized? How about package managers that require root privileges vs. unprivileged ones? What software bootstraps the entire system?

I could go on, but I hope you can see the futility. Even if you could somehow reconcile all of these things, what did it get you? You still wouldn't know the precise dependency graph of your software because most package managers can't tell you that. You wouldn't get build reproducibility because most package managers don't address it. You wouldn't get transactional upgrade and rollback of software because most package managers do not use atomic operations.

Guix can handle software written in any language, allows unprivileged package management, allows you to create isolated environments of packages (like virtualenv, bundler, etc.), deduplicates all packages system-wide via a content-addressable storage system, uses atomic operations for transactional upgrades and rollbacks, and more. A meta-package manager built on top the plethora of today's awful package management tools couldn't easily achieve any of these features.

<comment><USER12> > How would a meta-package manager know that installing the pg Ruby gem > required having the PostgreSQL shared library and header files available at > build time?

Because that dependency is in the meta-package's manifest. Realize that I'm talking here about an entire ecosystem of "meta-package formulae" that contain instructions to make particular tool-calls on particular systems.

> What version of that library would it use? How would you reconcile where > each package manager installs things? Traditional system package managers > install to the global /usr directory. npm makes nested directory structures > anywhere. Brew installs to /usr/local. How would you deal with the source > vs. binary based package managers? Centralized vs. decentralized?

You wouldn't reconcile any of these things, any more than things are reconciled now when you "brew install" one thing and "gem install" another and "npm install -g" a third. The result is a heterogenous multi-runtime system, but it continues to work, because _each tool_ knows how to manage its own ecosystem. A meta-package manager would call through to the regular package managers as its API for each ecosystem.

> How about package managers that require root privileges vs. unprivileged > ones?

The meta-package manager could assume the existence of a self-elevating wrapper tool like Debian's wajig(1), and provide such shims for package managers that don't have one.

> What software bootstraps the entire system?

The regular OS package manager.

\---

I don't think I'm being clear here; the point wouldn't be to _replace_ the system package manager. The point is to _automate the use of_ all the various package-management tooling _for configuration management_ in a unified, declarative manner.

I would expect the meta-package for e.g. Postgres to look a lot like a _Chef cookbook_ for installing Postgres, but with the limitation that—where a Chef cookbook would first attempt to use a package manager, and then "fall back to" mutating the system itself in a way no tooling on the system is tracking—a meta-package would instead just fail the installation if there was no package- manager source satisfying its constraints.

Guix is great, but it is its own OS with its own ecosystem. The point here would be to unify the API to package management on the ecosystems that _already_ exist, such that you could interact with the package manager in ignorance of its host OS the same way you can currently interact with e.g. a Docker daemon while ignorant of its host OS.

If this tooling was available and baked into server VM images and so forth, you could, for example, mostly replace the "cloudinit" instance-initialization system with a simple package list; or create something like a "virtual AMI" that takes a parent AMI ID and a "[{package, version constraint}]" list, and derives a new child image to launch on a set update schedule.

<comment><USER13> > Guix is great, but it is its own OS with its own ecosystem. The point here > would be to unify the API to package management on the ecosystems that > already exist, such that you could interact with the package manager in > ignorance of its host OS the same way you can currently interact with e.g. a > Docker daemon while ignorant of its host OS.

I think there has been a misunderstanding. Guix is a standalone OS-independent (Linux only) package manager. I am using it on Debian right now. The software installed by Debian has no knowledge of the Guix software and vice versa.

GuixSD is the OS built around Guix.

<comment><USER11> Wow, it looks like GuixSD has made a lot of progress since the last time I looked into it. [https://www.gnu.org/software/guix/](https://www.gnu.org/software/guix/)

</comment></comment></comment></comment></comment></comment><comment><USER14> I haven't encountered these problems with tox. But I'm all for having more explicit environment definitions while testing.

</comment><comment><USER15> For a moment I though this was about [https://tox.chat/](https://tox.chat/)

<comment><USER9> If the tox.chat devs would just make some alpha release tarballs I would package toxcore for Guix.

<comment><USER16> Gentoo and Arch packaging pulls source from git. Can Guix packaging be done from a VCS checkout?

<comment><USER9> Yes, and I've packaged that them that way for my own personal use, but it's really annoying to deal with because I have no idea which clients work with which revisions of the toxcore git repo. Some official alpha releases would make this much more manageable.

<comment><USER17> I try to take it easy on them. They had some pretty serious setbacks and drama([https://blog.tox.chat/2015/07/current- situation-3/](https://blog.tox.chat/2015/07/current-situation-3/)).

They really are getting back on track this month with irungentoo working full time.</comment></comment></comment></comment></comment>


ClassicPress: The business-focused CMS - <AUTHOR> https://www.classicpress.net/ <comment><USER2> I'm interested in learning more, but more importantly what are your licensing plans?

WordPress.org is licensed under GPLv2+, which specifically states:

"Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a more permissive license." [1]

So I am inclined to ask if you intend to release ClassicPress as free software or if you're going to try and keep it proprietary.

[1] [https://www.gnu.org/licenses/gpl- faq.en.html#WhyUseGPL](https://www.gnu.org/licenses/gpl-faq.en.html#WhyUseGPL)

<comment><USER3> Does [https://github.com/ClassicPress/ClassicPress/blob/develop/sr...](https://github.com/ClassicPress/ClassicPress/blob/develop/src/license.txt) answer your question?</comment></comment>


Seattle Flu Study finds COVID19 likely spreading in Seattle for past 6 weeks - <AUTHOR> https://mobile.twitter.com/trvrb/status/1233970271318503426 <comment><USER2> This has really hit home for me. I'm pretty sick with a 102 fever, cough, and aches. My guess for various reasons is that it's influenza A, but there are reasons to think it's not crazy to think it's COVID19.

The issue is that there's this kind of positive feedback loop about getting tested. If you have symptoms consistent with COVID19, you're told it's probably the flu and no need to go in and get tested unless you're high-risk. People always say "have there been identified cases of COVID19 near you?" The answer is basically "not that I know of," but if everyone is staying home and not getting tested so as to not panic and overburden the system, you don't know. As a result, it will look like nothing's there until suddenly there's a de novo case that can't be traced to Asia, Europe, or anywhere else that's had large numbers of cases. Then it's too late and is everywhere.

I understand the base rates, and that I probably don't have COVID19, but I don't really have faith in assessments of where things are at if people are rarely getting tested anyway.

<comment><USER3> > Then it's too late and is everywhere.

So we get the flu. Life goes on.

</comment></comment><comment><USER4> Later in thread

> Trevor Bedford @trvrb · 14h I'd assess the p-value for this coincidence at > 2/59=0.03 and so is statistically significant. Additionally, these two cases > are geographically proximal, both residing in Snohomish County. 5/9

That's... really not how p values work. Does everyone have to mention p values now just to try sound like they're authoritative?

<comment><USER5> I cringed when I read it. At the same time, you can have a meaningful p value from a single observation. If you were assuming novel spread from China and a random selection of virus genotype, you'd expect a coincidence like this to happen about 3% of the time if the null hypothesis held. So it's not completely bullshit.

Big caveat is-- inferring this from a single genetic difference with 59 reference sequences taken at different times is dubious. That 3% number could be drastically different in reality.

Still-- cryptic spread from the earlier case is probably the most reasonable explanation for what we've seen.

</comment></comment><comment><USER6> This doesn't surprise me at all. Some country (like Japan) is seeing these detected, because they are often seeing a doctor for the common cold. This is very different dynamic in the country like the US where a lot of people don't (or can't afford to) see a doctor for it -- thus I can only imagine there are quite a few infected, but undetected cases behind numbers that are reported.

</comment><comment><USER7> A good reply that summarizes my reaction:

Brian O'Roak @TheRealDrOLab

Replying to @trvrb

@JShendure and @seattleflustudy Do you really think Twitter is the best place to post this information? Wild speculation on the number of cases without confirmation is just going to panic people.

<comment><USER8> I've been interested in what the incentive is to avoid panicking people. What does panic actually look like and why are people so against it? People buying groceries and staying home? If panic looks like getting ready for a snow storm or hurricane, staying at home watching a movie instead of going to the bar, or washing my hands more frequently, I'm not sure what the downside is. It seems like the outcomes are worse if you wait.

<comment><USER9> Panic means there's no more supermarket open because first the hordes come and panic-buy, then the supermarket has to close as even the workers don't show up. Panic means people not showing up to work, doctor's offices overcrowded, streets blocked with people going to the countryside. Panic means the system breaks down - electricians don't show up to fix issues, firefighters can't get through as the streets are blocked, local businesses getting looted and going bankrupt as they have to close, etc etc

Mild panic/mild fear/excessive carefulness will inconvenience you. Real panic means people die and things break.

<comment><USER10> >streets blocked with people going to the countryside

A pandemic isn't a nuclear attack, leaving town won't get you anything.

Fleeing the towns was popular when the miasma theory of disease was in vogue, and would have been useful for avoiding animal vectors, but you wouldn't expect it to happen with COVID-19.</comment></comment></comment></comment>


War Machines: Recruiting Robots for Combat - <AUTHOR> http://www.nytimes.com/2010/11/28/science/28robot.html?_r=1

<comment><USER2> From a technology perspective that's pretty cool. From an ethics perspective, I don't think it really makes a difference, or will impact the future of war. It will definitely impact the art of war, but not on how much war we'll have. There were technically arms races throughout all of history and technology cannot change that about us. I can imagine a bunch of Englishmen sitting around thinking about the ethics of war because their buddies just made the Longbow. I'm pessimistic in believing that no matter what technologies we find there will always be humans that act like animals, but I'm optimistic in believing no matter what technologies we find there will always be people who will stand up for the right. I don't think this will really impact most of our lives at all..., but they do look really fun.

<comment><USER3> > I don't think it really makes a difference, or will impact the future of war

since the risks of losing your own soldiers is much reduced, you don't think it's more likely to cause war?

>but they do look really fun.

fun? really? i'm a little shocked that you think it's fun. Aren't we talking about people dying here? a lot of innocent civilians die during a war, and that with soldiers on the ground with all the facts.

maybe if we aren't prepared to lose soldiers we shouldn't be there in the first place.

</comment></comment><comment><USER4> Only time will tell whether these new developments help limit non-combatant death.

Nevertheless, this detachment from human death scares me.

</comment><comment><AUTHOR> The one positive note is that a lot of money is being spent on robotics R&D, which will hopefully have some consumer uses.

<comment><USER5> But think of the blowback on the discipline of Robotics when the first human/robot conflicts result in significant human casualties. It might be a net loss to the profession.</comment></comment>


Ask HN: Where can I find a tutor for web development? - <AUTHOR>

I'm looking for a tutor to learn web development from. I'm having some frustration right now going from I don't know what I don't know to I know what I don't know, and I want to have a relationship with a person who can help me through this process.<p>Does HN have any suggestions where I can find someone? Any would be appreciated. :) <comment><USER2> What sort of thing are you looking for? What aspects of web development interest you, how much help do you want? Do you just want someone who can review your code and answer questions, or do you want someone who will give you directed tasks? What do you think the arrangement would look like? Also, roughly where (country/state/time zone) are you based?

<comment><AUTHOR> I'm looking for a tutor not to develop my skills just for the sake of it, but to develop my skills in certain areas of web development so I can build this website I want to build. So not so much as reviewing code or giving directed tasks but guiding me and giving me resources I can use to learn from. The arrangement would be over Skype, maybe once or twice a week for an hour. My timing is flexible.

I have quite a bit of experience with HTML, CSS, and a little of javascript. I've been exposed to Ruby on Rails. I want to learn server-side programming, how to add webcam chatting, for two.

<comment><USER2> I've got a lot of experience doing web development, but it's mainly concentrated in one particular area - javascript apps that run on a single page and use a streaming connection to get all their data. I've been doing this kind of thing on and off for 10 years now, and the ecosystem has changed massively in the last 2 years, so a lot of problems I'm used to solving by myself (e.g. MVC, unit testing) are now more sensibly solved by some of the newer libraries.

While I have to be competent in server side programming, I find it a bit of a chore, and believe that increasingly for hobbyist work, using other peoples more general servers is the way forward - e.g. I recently wrote a program that can run from a basic http server and uses google doc spreadsheets for all its back end storage and OAuth2 for all the user authentication.

You didn't mention if there's a server side technology you're particularly interested in, since obviously there's a lot of choice in that area.

Anyway, given all that, I think I'm probably the wrong guy for you, but if you don't get any better offers within a week or so, contact me on email@example.com.

</comment></comment></comment><comment><USER3> Try your local programming meetups. If there aren't any, then start one.

You also might start a "Code Until Dawn" or "Local Hackers" group, for coders to get together and hang out.

Last but not least, teamtreehouse.com and codecademy.com

<comment><AUTHOR> I used teamtreehouse.com and codeacademy.com. I was saying in another comment I'm not a beginner anymore.

But I will look to meetups, I don't know why I hadn't thought of this.

</comment></comment><comment><USER4> Check out <http://bloc.io>! They provide one on one mentoring sessions throughout their 12 week online web development course.

<comment><AUTHOR> I'm looking to have a lot of flexibility. I'm not interested in following a curriculum. I want to learn specific areas in web development (server-side programming, webcam chatting are two).

</comment></comment><comment> saiko-chriskun Hey there! I wouldn't mind helping out ;). Been doin' various kinds of front and backend web development for startups for about two years now.

My Skype handle is saiko-chriskun if you're still lookin'.

</comment><comment><USER5> this is a good place to find help / mentorship: <https://clarity.fm> there are some people there that are willing to help for free (me included) and some for a fee

besides that, have you looked at sites like stackoverflow? did the tutorials at codecademy? udemy? udacity (it has a web deb class by the creator of reddit)

<comment><AUTHOR> I use Stackoverflow very often. I've done tutorials at Codeacademy, Udacity, as well as others (Club Treehouse comes to mind). I'm not a beginner with web development anymore; I'm looking to go the next level.

I will look into clarity.fm, thank you.

<comment><AUTHOR> I just looked in clarity.fm. It doesn't look to me the mentors in Technical Advice are programmers but center more around business. Is this true? I'm looking for an 'engineer' not a 'salesguy'.</comment></comment></comment>


Forged Subway Passes - Boston - <AUTHOR> http://www.boston.com/news/local/massachusetts/articles/2011/05/19/mass_ag_man_reaped_millions_with_fake_mbta_passes_1305843490/ <comment><USER2> MBTA is an embarrassment.

The cards have serial numbers, but they weren't checked? Seriously? Not even in the nightly audit report? They do a nightly audit report, right?

Billsf showed BART how to run an electronic ticketing system 15 years ago. Of course, he got prosecuted for it. But MBTA could surely have learned a thing or two. Amateurs.

<comment><USER3> It's simple, really. It's not their money. If they run short of funds, they'll just dig into the taxpayers' wallets.

<comment><USER4> Got it in 1. MBTA is 8 _billion_ dollars in debt. They are the MA poster child for "too big too fail."

<comment><USER5> It's a public transit system. Is the goal to turn a profit or provide transit services? For comparison, how far in "debt" is the road system (which costs far more to operate and has zero "revenue")?

I'm always amazed at the libertarians who freak out at the idea of subsidized transit (which is clearly what this is, even if there's a nominal balance sheet attached) as they drive their cars to work on the road system provided entirely at taxpayer expense.

<comment><USER6> > For comparison, how far in "debt" is the road system (which costs far more > to operate and has zero "revenue")?

When did MA repeal its gas taxes, license fees and taxes, and sales tax on auto related stuff?

<comment><USER5> Ancient argument long settled. Those don't come close to meeting the cost of maintaining this stuff. Even roads (e.g. the pike) which are expressly mandated by law to support themselves via usage fees fail to break even.

It's a hypocrisy argument: government subsidies on transportation are bad, except for the method of transportation you use. Some people actually take those buses and subways and have different perspective.

<comment><USER6> > Those don't come close to meeting the cost of maintaining this stuff

Not so fast. The claim, which I refuted, was "which costs far more to operate and has zero "revenue")?"

Not enough revenue is very different from "zero revenue".

> It's a hypocrisy argument: government subsidies on transportation are bad, > except for the method of transportation you use.

Except that I wasn't making an argument - I was showing that your "zero revenue" claim was false.

Note that it isn't at all hypocritcal to say that some subsidies are worse than others. And, when you're arguing for subsidies, you can't argue that all subsidies are bad.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> So, to recap, if that commuter had told the operator to mind his own business, this would still be going on.

Also, the T doesn't bother to count the number of passengers and compare it to the number of tickets sold.

Also, the T's management doesn't read Craigslist, and hasn't for years.

<comment><USER8> _Also, the T doesn't bother to count the number of passengers and compare it to the number of tickets sold._

Passengers can get on & off the train at multiple points along the line. Counting passengers would not be very helpful.

<comment><USER7> They manage to check the tickets for all those passengers.

I've seen it in action.

<comment><USER9> Go to Fenway on a game night. You just wave something that looks like a pass and you get in.

</comment></comment></comment></comment><comment><USER10> I'm actually kind of disappointed this wasn't more complicated, like actually hacking the system or altering cards (<http://web.mit.edu/zacka/www/mbta.html>, <http://tech.mit.edu/V128/N30/subway/Defcon_Presentation.pdf>) instead of just opportunism.

<comment><USER11> Unfortunately the real world usually isn't that interesting.

Crooks in DC figured out that paper farecards had the same bits encoded over and over for the length of the magnetic strip. So they'd get a high value card and literally splice it into multiple high-value cards. [http://www.schneier.com/blog/archives/2008/07/washington_dc_...](http://www.schneier.com/blog/archives/2008/07/washington_dc_m.html)

</comment></comment><comment><USER12> The passes described are neither "fake" nor "forged" - they were created by a contractor hired to create them, using the system that creates all T passes. The contractor wasn't authorized to create these, but we could call this a licensing issue. It isn't obvious that this is a criminal case (even tho it is being prosecuted as such) unless the MBTA gets special treatment under law. The details make this look more like a copyright violation than a counterfeiting case.

<comment><USER13> This is hacker logic, and specifically, hacker-who-is-committed-to-piracy- being-noncriminal logic. The actual legal system will look at this like printing fraudulent checks on authentic check paper. The illegality of this is about as controversial a proposition as "Javascript is a programming language."

If a lawyer told you Javascript was not a programming language, you'd immediately think "Cripes, he's a bozo."

<comment><USER12> _This is hacker logic_

I would expect it to be hacker logic, but I still don't agree. Company X hired a contractor to produce keys. Contractor Y produced more keys than he was authorized to produce, and sold them on the side. Are those additional keys "fraudulent"? Was he authorized to produce and sell any number of them as long as he paid for them? Clearly he had no intention of paying for these, but that doesn't make the keys he sold on the side any less valid than the keys he was authorized to produce. He is certainly liable for his contractual obligations (the money owed per key), which the article states the MBTA is trying to recoup.

 _The actual legal system will look at this like printing fraudulent checks on authentic check paper._

In this case, by the payroll company that was in charge of printing checks. Does that make them fraudulent? Is cashing them a crime? I would expect the payroll company to be liable for the damages, but I would not expect the company to be prosecuted for fraud.

You have picked a particularly poor example because an unauthorized check deprives the account holder of the value of a check. An unauthorized MBTA pass deprives the MBTA of the possible revenue that a customer purchasing a discounted pass might have contributed, and additionally increases the operating costs (generally fixed) of the MBTA by little to none.

 _specifically, hacker-who-is-committed-to-piracy-being-noncriminal logic._

To my knowledge, most piracy cases are civil cases. I don't recall any being prosecuted by the Attorneys General.

(EDIT: I am wrong. High value for-profit cases are prosecuted as criminal offenses by the FBI under Title 17 §506.)

 _The illegality of this is about as controversial a proposition as "Javascript is a programming language."_

I don't know what kind of argumentation that is supposed to be, but it doesn't suit someone of your stature. This is a complex situation that few or none of us are properly equipped to resolve, but I still expect reasonable discussions, or else what's the point of being here?

<comment><USER13> "This is a complex situation that few or none of us are properly equipped to resolve."

This is, in fact, not a complex situation. Law is not a magic, unknownable realm populated by wizards who have the sole ability to understand what it means. Hard questions in law are hard questions, like hard questions in engineering are hard questions, but this is not a hard question. It's only a hard question if you are ignorant of the law or are intellectually committed to law not working the way law actually works.

Printing a check which exceeds one's granted authority is, with absolute certainty, a crime. You seem to be hung up on the notion that the payroll company can print one check and, therefore, if it prints two checks, check #2 is kinda grey-area authorized. The law does not see things that way: if you're knowingly printing extra checks to with the extent of stealing from their account, it is _screamingly_ illegal.

I mean, want to look at an actual law? Here you go, MA General Law Chapter 267 (Forgery and Crimes Against the Currency) Section 1 (False or forged records, certificates, returns, attestations and other writings)

"Section 2. _Whoever, with intent to injure or defraud, falsely makes_ , alters, forges or counterfeits a railroad ticket, railroad mileage book or _railroad pass_ , or a ticket, badge, pass or any written or printed license purporting to entitle the holder or owner thereof to admission to any exhibition, entertainment, performance, match or contest of any kind, _shall be punished by imprisonment in the state prison_ for not more than three years or in jail for not more than two years, or by a fine of not more than five hundred dollars."

This is really not ambiguous. Was it unpredictable that this was the law in MA? No.

If one hypothetically believes that this case does not qualify as "falsely makes" or that the bad actor here didn't have "intent to ... defraud", one is wrong. One is not just a little wrong, or arguably wrong, or sort of grey area wrong.

<comment><USER12> I think that we have a fundamental misunderstanding here. My stance is that the wrongdoing is not "fraud" because the passes which were sold were in fact valid passes for which the MBTA was not compensated. You seem to be interpreting my statements as claiming there was no wrongdoing, which isn't my claim.

 _Law is not a magic, unknownable realm populated by wizards who have the sole ability to understand what it means._

Law is not magic. But I am not a lawyer, and I don't think that many lawyers, let alone those who specialize in criminal prosecution or even intellectual property read Hacker News. Hence my claim that this is a complex issue for "us" to engage in, for which "we" are not fully qualified. My interest in this stems from the notion that we should be informed of the society we live in, and that Hacker News comment threads are places of philosophical discussion. Also, the Hacker News article uses the term "forged" instead of the article's "fake", and I think that both of these are incorrect. The passes produced were clearly valid, but unauthorized.

 _If one hypothetically believes that this case does not qualify as "falsely makes" or that the bad actor here didn't have "intent to ... defraud", one is wrong. One is not just a little wrong, or arguably wrong, or sort of grey area wrong._

I apparently lack your swagger. Given that the MBTA could not differentiate these passes from the ordinary pass, I claim that these passes are not "falsely made". In every way they behave as stolen passes, but not fake ones. Why does this matter? I suppose that I care because the headline "Forged Subway Passes" is the only reason this article belongs on Hacker News. But given that these are more "stolen" than "forged", there is nothing technically interesting about this event and it doesn't really belong here.

But our discussion has been interesting, because you have presented compelling arguments that this is actually fraud. I still believe that it is not, but the process of arguing has made me develop my intuition of something that I wouldn't normally have cared about. I certainly wouldn't have realized that I thought the event was theft and not fraud.</comment></comment></comment></comment></comment>


I can't process the information that is coming at me - <AUTHOR> I'm a well-educated man yet I find it very difficult to process the information that is coming at me. The number of issues that hit me every day just makes me want to hide in a foxhole until it's all over like some soldier. Yet I know it will not be over. In fact, I know it will be progressively worse.<p>I'm educated and aware and I can't cope. How can anyone cope? <comment><USER2> I read somewhere that someone said (either about physics or CS): "There's 50 times as much going on as I can keep up with, and I only operate at 2% efficiency. So there's this factor of 2500 working against me, and every day I fall seven years further behind."

And that was _professionally_. That wasn't trying to keep up with the news, and your friends' every social media post.

So cut yourself some slack. _Nobody_ can keep up with everything. You aren't broken, you aren't incompetent, you're just human, and humans have limited bandwidth. I think that's where the answer starts: Stop expecting that you can keep up. Stop thinking that it's reasonable that you can keep up. It's _not_ a reasonable expectation; there's too much for that.

The next step, as others have said, is limiting what you try to keep up with. See, the news outfits make more money if they get you to consume more of their stuff. So does Facebook. There are very smart people trying very hard to make you want to consume their spew, for their benefit, regardless of whether it harms you or not. You have to deliberately defend yourself. Consciously choose how much you're going to take in, and of what. And then fight to maintain that, because they're going to tempt you to make an exception... and another... and a whole bunch more... and then your limits are gone. If and when that happens, recognize that it happened, remember why you put limits on, and go back to the limits.

<comment><USER3> >So cut yourself some slack. Nobody can keep up with everything. You aren't broken, you aren't incompetent, you're just human, and humans have limited bandwidth. I think that's where the answer starts: Stop expecting that you can keep up. Stop thinking that it's reasonable that you can keep up. It's not a reasonable expectation; there's too much for that.

This.

But I only learned this kind of self-compassion after having my pride eroded to a nub. :3

Also, embracing the futility and meaninglessness and briefness of life helps. Reflect on your mortality, and how it might come sooner than you think. AND NOT IN A SAD WAY; more like in a humorous way, salted with the gratitude to have been (and still be) a part of everything. xD

</comment></comment><comment><USER4> Here's how I cope:

Q: Where's my phone? A: I think it's on the shelf somewhere. Honestly I don't know.

Q: How many tabs do I have open. A: Currently 5 and never more than 10.

Q: How many times do I watch the news on TV. A: Never, I use youtube and I get the news from various sources on the topics that I want to hear.

Q: How many IM apps do I have open. A: Just one, Skype and is reserved for friends only.

Q: How many forums do I go to. A: Just two, HN and Reddit and on Reddit, I only browse the topics that I want to. I almost never go to the front page.

Q: How many social media sites have I joined. A: None. Not on Facebook, Twitter, Instagram or any other apps. Accounts created in the past were for test applications.

Q: How much unread mail do I have. A: None, I have 1 inbox for friends and family and another for spam / anything I opt-into.

It all starts with you. You have control over what you do and don't do. If you reduce your surface area, the number of issues will diminish daily.

<comment><USER5> I get the newspaper delivered. That way I can look at it once a day and get a concise summary. The rest of the time I don't need to consider it.

</comment></comment><comment><USER6> First off, do you still read the news? If so, consider cutting them completely.

As for the rest, deal with issues in a sequential manner. Don't deal with multiple things at once. Be stubborn: pick one thing, kill it dead, move to another.

And consider adopting a GTD-like system. If you deal with information, you will benefit from having a clear distinction between actionable information (tasks) and non-actionable information (reference). See a task? Put in on a task list. Not a task? File it into notes and forget about it.

<comment><USER7> I've struggled with this. News and social sites like Reddit are what tipped me off early this was going to be bad.

Yet I empathize greatly with OP. It takes massive energy and time to deal with the sifting.

I've started trying to develop mental filters and guidelines for things I went let myself dig into, like opinion pieces and their comments. It helps a little. I suspect I need to do more though but don't want to risk being out of the loop on major global and local happenings.

<comment><USER8> I use skimfeed.com to attempt to get an overview of headlines in the world and delegate everything else to lists and work through them. Once an item is on a list, I no longer need the mental exertion to remember what I needed to do, and avoid getting into the "what was that thing I was meant to do and remember?" situation.

I also deliberately avoid WhatsApp and force people to email or SMS me. This massively reduced the amount of noise I had to deal with. Sure, I hear off fewer people but I actually get stuff done and if people can't be bothered to write an email, it's probably not important in the slightest.

This might not be an option for you but in any case it is reducing the amount of time you're on your phone and/or distracted, coupled with exerting a bit of control over when and how people can contact you. Your phone is for your convenience, not theirs.

</comment></comment></comment><comment><USER9> Take in less information. Prioritize based on what you truly need to know. Augment with things that make you curious rather than stressed.

<comment><USER10> This is the answer. It isn't easy – it's like quitting smoking in that way – but you have to take control of the input.

For me that means cutting out hyperbolic news sources like twitter, Reddit, definitely any cable news network or daily news broadcast of any kind. Apple News is also terrible in this regard; no matter how hard I try to curate, they're always shoving celebrity gossip and MSNBC or Fox News headlines at me.

So it's a daily struggle, but on my good days I check the New York Times and Hacker News once in the morning and in the evening. I have a couple of non- news blogs I subscribe to that I check via RSS feed, and then that's it.

I donate what I can to political and charitable organizations. It's important to stay informed, but unless you're a reporter or working in crisis management for a political campaign, I don't think there's a purpose served by becoming outraged by every public statement by every dingaling politician or pundit.

I do 100% have a dog in this fight and care deeply about what's happening in the world right now both in terms of the pandemic and in the shift toward far- right populism, but for me the strategy has to be: keep an eye on the general gist and direction of things and then act accordingly. Who needs help right now? Is there and action you can take?

This is obviously a "your mileage may vary" situation. Some folks are no doubt able to keep one eye on their Twitter feed and stay perfectly sane and productive, and more power to them, but I'm not one of them.

</comment></comment><comment><USER11> I have suffered with a fair bit of general anxiety my entire life. I'm 39 and while I'd say that I am significantly better at coping with it... it's still something that I struggle with and am still learning to deal with better.

I am not quite sure if you meant this post from a general "world at large", or from a "professional having a hard time with work" perspective. Or both? So the things I am about to say are from the "professional having a hard time with work" perspective as it's the one I personally struggle with. I'm sure some of this is applicable to the other category too.

1) Form routines, especially for stuff that generally spikes some anxiety for you. Figure out a process and just do it each and every day. I find that this helps with confidence.

2) Learn to say "f _ck it ". Weird as it sounds, but learning to let go is an amazing tool. "You know, this situation could be better. But you know, f_ck it! It could be worse, so It can't be that bad"

3) Organize and plan things out. Prioritize things. Accept that you can't always tackle all issues. Use a todo app and list out everything you have going on for the day. As new things come up, add them as a todo. Keep the list prioritized and just focus on the highest priority item at the moment.

4) Learn to tell people you can't help them right now if it's not a higher priority than something you are currently doing. I struggle the most with this one. I always end up feeling really bad if I don't immediately drop everything and do whatever I can to help.

5) Close all those dang browser tabs. I'm sure you meant to come back to X thing 3 days ago... but honestly, it's just a distraction. Close all your random applications down. Open a fresh browser window and only have the stuff you need to focus on for the day. If something is really important, use a bookmark or otherwise take note of the page so you can come back to it later.

6) Medications are often useful tools and can help with improving your quality of life. It could be worth talking to your doctor. Medications generally don't solve problems, but if it can help improve your quality of life, it can be worth considering. It's also worth pointing out that it can potentially take a very long time to work out which medications are best for you. I take medication for high blood pressure for example. Having a lower blood pressure has also helped with my anxiety and just generally feeling better. This has also helped with my anxiety.

</comment><comment><USER12> Close all browser tabs. Heck close all applications. If you must read news, choose the most informative news sources and minimize number of open tabs. Be selective, but keeping the same sources makes you able to skip many duplicate stories from different places. Go outside, be with closest family, pet your dog, do something new every day, preferably non-comp related.

</comment><comment><USER13> This sounds very much like what I deal with. I see it as a side effect of ADHD, which I see as a difference - not a deficit - in my ability to process incoming information. Getting overwhelmed is difficult to deal with, but it is accompanied by the ability to hyperfocus.

My first-line coping strategy is to close my eyes. That seems to help significantly, as if visual processing consumes a limited mental resource that I can free up to apply to structuring my thoughts. I have no idea if there is any science to back that up - but I also don't care. Coping is about developing useful mental models for dealing with the world around you, not necessarily about being technically correct.

I also careful control my facial expressions when I'm around others and do this. My goal is to have them think that I'm concentrating on something (which, really, I am) and not upset or distressed. This also provides them a cue that usually results in their pausing or slowing down further information for a moment, which helps.

</comment><comment><USER14> I know mindfulness is the latest trendy thing, but it's worth simply observing your habits and trying to recognize when you do something that could cause added stress.

If you're like me, you pick up your phone 1000x per day, so it's a constant interruption. I have lots of notifications on, so as soon as I get a new email, I see the notification and then read it. All of these little things seem insignificant on their own, but they add up.

If you're interested in doing some observation of your habits to get a more nuanced sense of what you like and don't like about your current digital life, I recommend the first couple of chapters of this book: [https://www.goodreads.com/book/show/25246881-mindful- tech](https://www.goodreads.com/book/show/25246881-mindful-tech)

</comment><comment><USER15> Learn to meditate, vipassana or "mindfulness meditation". This has a dual benefit... one is the physical benefit of leaving body and mind in a calmer state. The other is training the mind to become more accepting of whatever occurs... meditation is all about observing without judging.

</comment><comment><USER16> Have you considered talking with a mental health professional as an alternative to soldiering on alone?

</comment><comment><USER17> That's why you have to pick your battles.

Look for the 20% of effort that will get you 80% of the results.

</comment><comment><USER18> It's hard but eventually you can be content, knowing that it's impossible to process the fire hose of information flying around everyday.

What helps is not trying to read the news everyday. Go for a week without reading news, you'll feel much more in tune with your local surroundings and be able to focus on what you care about more.

Arron Swartz has a good article on this.

[http://www.aaronsw.com/weblog/hatethenews](http://www.aaronsw.com/weblog/hatethenews)

</comment><comment><USER19> >How can anyone cope?

by cutting unecessary information out. Instead of reading the news everyday subscribe to some high quality weekly newspaper like the economist, deinstall all the social media apps or reduce your usage to an amount of time that is more reasonable, and replace that activity with stuff that's healthy like working out, getting some sun, whatever.

There's no real mystery here, just remove the things that stress you out and replace them with habbits that are conducive to your well-being.

</comment><comment><USER20> There are days when it feels overwhelming. I hear you completely.

</comment><comment><USER21> Part of your brain is responsible for filtering out irrelevant information from your stimuli. There are large classes of mental illnesses that have elevated sensory sensitivity as a symptom, which is what you are describing. It's also related to affect regulation.

People will say that you are watching too many news etc. I think there's a deeper issue. Education has absolutely 0 to do with it, this phenomena is not related to the conscious level of the mind.

</comment><comment><USER22> learn to skateboard and use your devices solely for content creation. fuck the world

<comment><USER23> This comment might come of as apathetic or dismissive or something, but I actually think there's a beautiful golden nugget of truth in what you just said.

</comment></comment><comment><USER24> I think everyone feels like they're being hit with too much information at some point. But wanting to hide, and knowing it won't be over sounds really frustrating.

Have you thought about running it past a therapist? They can help you size up the situation (eg are you anxious, and finding yourself avoiding work?), and think about options, or just help track how things are going.

<comment><USER25> I don't know about OP, but I know in my city (Boston), there was a 5 month waiting period for access to a therapist -- and that was _before_ COVID hit. Lots of us would love to speak with a mental health professional, especially in these trying times, but it's unfortunately not always possible.

Like OP, I'm looking for strategies to help self-cope, as that's the only way forward for many of us for now.

<comment><USER26> Tele health is an option and there are more openings because of canceled in person visits. Now is a good time to establish care

</comment></comment></comment><comment><USER27> I once had this problem and the worst part was that I was getting worried thinking about those things. The best you can do is to cut the information that you take in and specially things that are out of your control. Focus on things that matters to you or affect your day to day life.

</comment><comment><USER28> Just don't punish yourself over it. There is more information than anyone could handle. It's really a matter of realizing failure is a part of life. You can not avoid failure, but you can sure handle it.

</comment><comment><USER29> Don't listen to the commenters in here. Most people can't cope and are on anti-anxiety meds. Deep breathing / block breathing can help with short term panic attacks. Ultimately therapy and drugs work best, tough to get now but you might be able to do telemedicine if you find a good provider. You can even get Valium, Ativan, Xanax, or well, most anti-anxiety drugs mailed to you via mail order pharmacy since they are all only Schedule IV. Good luck.

<comment><USER30> Right to drugs? He didn't say he had panic attack, but that he can't process.

I won't argue against medically prescribed drugs for people who need them, but "commenters" here who are talking about therapeutic modalities (CBT and NLP are great) and mindfulness (slow down, see things as they are, tackle the things you can) aren't off-base, and these are more than short-term solutions. They can be the keystone to true transformation.

Overwhelm is reasonable, but also addressable. By many different ways.

</comment></comment><comment><USER31> List down things you do

Abstain from it if it involves people other than your family

Once you reach boredom, meditate.

</comment><comment><USER32> News "every other day" seems to be a good approach these days.</comment>


how popular are friends lists in social news sites? - <AUTHOR>

I'm writing a niche social news site, and I'm wondering if I should bother including "friends" functionality. I've used digg, reddit & slashdot for years and have never felt it necassary to maintain a list of friends. <p>it's a news site, not a social network, so I'm not sure how useful it would be. what do you think? <comment><USER2> It's important, but it's not important for the initial release. Because when you're just starting out, nobody on the site has any friends (that visit the site, at least ;-)).

Friends lists seem more useful after a community grows, because they let it fragment. That seems to be the only way to avoid the scale problems that plague bigger news sites like Digg and Reddit. If you're truly niche and don't anticipate growing, you won't need them at all. (But then, if you're truly niche, you've really got a hobby and not a startup...)

I'd put them off till your users ask for them, basically.</comment>


Neo4j 3.0 released and Panama Papers available May 9 - <AUTHOR> http://www.infoq.com/news/2016/04/neo4j-3.0 <comment><AUTHOR> The Panama Papers data was analysed in Neo4j, and the ICIJ has been working with Neo Technology to make a copy of the data available in a public Neo4j graph database, which will be queryable with Cypher to allow others to explore the data set.</comment>


Opinion: Why we're closing comments - <AUTHOR> https://www.residentadvisor.net/features/3386 <comment><USER2> That's one fancy way to say nobody bothers to comment on their on site articles anymore so they don't want to bother properly maintaining it.</comment>


Ask HN: Honestly, what do you think of my idea? - <AUTHOR> Hey fellow Hacker News(ers). I have a side project I've been working on and really think it's in an area that needs a lot of help.
Here is the link: http://pulse.energy
Essentially, it's a single api endpoint to allow developers to access a users utility account data (usage, billing, etc.) via an OAuth flow.
The idea is to lower barriers to entry and make it easier to build these types of applications so the world can better understand their energy impact and individual carbon footprint.
Examples of what could be built:
- Gamification platforms for energy consumption
- Mint.com-like applications for all utility accounts
- Applications that allow solar companies to more easily provide custom price quotes to customers, quicker.
I'm not trying to tell you what to build, just give you the tools to make it happen quicker.
Think Plaid but in the utility and energy space.
Thoughts? Honesty is preferred. <comment><USER2> I think the biggest question is whether there's really a market for it, and companies willing to pay for it. It might take a while for Mint-like applications to come up, and solar companies to discover your API and start/consider using it. You might have to build something like that yourself; e.g. a Mint-like web app for all my utility accounts -- if anything to make the existence of pulese.energy more well-known.

I'll admit that it's definitely very useful. Having a standard API to query usage data that works across various electric & gas companies is great. I personally might sign up for your API because I like having that sort of data. recently bought a WeMo Insight Switch to measure how much energy my desktop computer was using. But is there a larger market for it, besides nerds like myself? Are there B2B opportunities for your product; i.e. startups or large companies that _need_ an API like pulse.energy?

What you're trying to build reminds me of the Clever API for education: [https://clever.com/](https://clever.com/) They provide a standard API to access student data that works across the heterogeneous systems that school districts. I've worked at an educational software company in the past, and the product I was building was critically reliant on Clever. Our product simply wouldn't work without it.

</comment><comment><USER3> I don't think I'm under NDA for this (hope not):

There are already contracts and systems for parties to get this from the utilities. Depending on the utility market, you can even get this information realtime (not HFT realtime). The systems are really quite sophisticated, and companies are already building all sorts of analytical platforms (from fancy excel spreadsheets to ML applications) around the data that they do have access to.

Do you have contacts in the markets? Do you plan to get this information using some sort of meter? What kind of experience do you have with this type of data? The data itself varies greatly in quality and that needs to be factored in to anything you do. This information is also highly proprietary.

</comment><comment><USER4> I worked for a utility provider, to build out a pricing engine. Gathering data, and generating a kw/hr rate, and determining when product changes occurred, etc. We worked with a number of national utility companies. A big portion was pulling data from the different utilities and coalescing it into a common record.

In addition we need to make the records versioned. I.E. if the product for the product was updated changing the kw/hr rate, we would need to record the change and increment the version.

We were actually trying to get a common API and make it public like this. Being utility agnostic, but still allowing viewing of customer information, when authenticated. But we hit a lot of roadblocks. These can be narrowed down to lack of interest. The team that maintained a lot of the customer relation management (SAP). Only wanted to use vendor provided services, and nothing developed in house. There was also a lot of in the weeds type analysis. There was a utility in new york, that had a tariff tax, and candle energy tax that had to be applied based upon a zip code to the kw/hr rate.

I think it's a field that is rife for disruption. Definitely beneficial, but it's a bit of a work to encourage utility companies to utilize something like this.

</comment><comment><USER5> It seems a great idea if you manage to take care of the real-world business side of things, integrating with utility companies etc I think that's the difficult part.

</comment><comment><USER6> This looks like [https://utilityapi.com/](https://utilityapi.com/)

What's the difference?

<comment><USER7> (also note [https://github.com/plaid](https://github.com/plaid) #financialapi)

</comment></comment><comment><USER8> I've worked as a developer on a similar project by a utility company, see: [http://www.greenbuttondata.org/developers/](http://www.greenbuttondata.org/developers/)

</comment><comment><USER9> I think this is what Opower does commercially.

<comment><AUTHOR> Opower is actually an example of what could be built using Pulse. Opower provides a data driven breakdown to customers to educate them on their energy usage - these are the types of tools I'm hoping to make easier to build in the future. There definitely aren't enough tools like that, and energy efficiency is a huge problem that needs to be solved.

</comment></comment><comment><USER10> Cool! What are some possible neat applications that could be built using this—think, hackathon time-frame?

<comment><AUTHOR> I've just updated the details with a couple examples. The goal isn't to tell people what to build, but to make it easier for them to build things. I figure, lower barriers to entry and watch the possibilities unfold.

<comment><USER11> I think this is cool, but I think you need to have some ideas of what pain points you are solving.

When I installed a Nest it said that we were saving money but actually our bills were higher. Correlating appliance usage to utility bill changes might be interesting.

<comment><AUTHOR> The pain point Pulse solves is the difficulty that developers have in accessing user utility account data. As much as there has been a push for programs like green button connect, these programs will only be touched if the utility has some sort of monetary compensation for doing so. The adoption rate has been annoyingly slow, which is why applications that better educate users on energy usage and consumption haven't been built.

<comment><USER12> You need to get better at communicating this kind of thing on the site and drop your position that you aren't trying to tell people what to build. Listing such info will not compel other people to do as they are told. Not listing it will cause a great many potential users to shrug and move on, never having gotten any idea why they should be interested.

</comment></comment></comment></comment></comment><comment><USER13> Is this not a trivial idea?</comment>


Understanding image histograms with OpenCV - <AUTHOR> http://lmcaraig.com/image-histograms-histograms-equalization-and-histograms-comparison/ <comment><USER2> > In the case of 2D histograms the resulting plot will have the pixel > intensities of a channel on the X-axis, the pixel intensities of another > channel on the Y-axis, and the frequency is given by the color of the plot.

I'm still having a hard time understanding what exactly this represents and how to properly interpret it.

<comment><USER3> There's a nice overview here: [https://svi.nl/TwoChannelHistogram](https://svi.nl/TwoChannelHistogram)

I don't know any professional photographers who use 2D histograms for editing, or whether you can actually plot them in Lightroom or Photoshop. However for scientific image processing it seems to be more useful.

OpenCV also has a tutorial: [https://docs.opencv.org/3.3.1/dd/d0d/tutorial_py_2d_histogra...](https://docs.opencv.org/3.3.1/dd/d0d/tutorial_py_2d_histogram.html)

But which of the 'coming chapters' it's referencing I have no idea.

</comment></comment><comment><USER4> _" We can easily extend what we've done for the 2D histogram to calculate 3D histogram... Unfortunately we cannot visualize this histogram."_

Why not? Couldn't you just create a 3D image?

<comment><USER5> You would only be able to see the outside "shell" of it.

<comment><USER4> There are visualization programs that will let you move through a 3D volume, slice by slice, as it were (along various axis). So this shouldn't be an issue.

<comment><USER6> It wouldn't be a 3D volume though. A 2D histogram is a 3D volume. A 3D histogram would require a 4D object, so it would be a case of "first build your hypercube..."

<comment><USER7> How about a 3D point cloud with dot size corresponding to intensity?

<comment><USER8> Something like this [0]? (Disclaimer, I made it)

[0] [https://franciscouzo.github.io/image_colors/](https://franciscouzo.github.io/image_colors/)</comment></comment></comment></comment></comment></comment>


Gzip vs. Bzip2 vs. LZMA - A Comprehensive Benchmark - <AUTHOR> http://tukaani.org/lzma/benchmarks.html

<comment><USER2> Has anyone updated the numbers for this now 7 year old analysis? I'm pretty happy that Python 3.3 includes the lzma module, since I've found that that compression does the best for the data I'm interested in.

I'm mostly interested in the speed/size tradeoffs. While the size probably hasn't changed much, the lama implementations might have gotten a lot faster.</comment>


Ask HN: How would you test an autoscaling algorithm? - <AUTHOR> It is meaningless to test with stubbed out resources IMO, the scaling code depends on 3rd party libraries and infrastructure, so how would you test it if you have scarce resources that can only be used in production? <comment><USER2> Non stubbed loads on loads

<comment><AUTHOR> What do you mean?</comment></comment>


Go Big by Going Home - <AUTHOR> https://medium.com/the-year-of-the-looking-glass/af182add5a2f <comment> o0-0o Once upon a time, we called unreleased software vaporware.</comment>


"People who implement new and improved interfaces always seem to get that wrong" - <AUTHOR> https://lkml.org/lkml/2015/9/9/602 <comment><USER2> "People who implement new and improved interfaces always seem to get that wrong."

Linus is completely right on this. I have seen this over and over again where developers, creative and problem solving as they are, attack things with their limited experience and knowledge and fail to understand things fully before heading in like a bull.

There is a time and place for that sort of behavior, though. Linus wrote Linux with that same mentality. Sure, he was exponentially smarter and more able. :) But, that was the time for starting fresh with a cavalier attitude. However, if you try to contribute something like this to Linux today, as mature and stable as it is, and majorly screw it up, yes, you are wrong and expect your ass to get chewed.

I just worry for Linux's sake who, if anyone, will be able to replace Linus if he were to choose to retire or were whisked away by aliens (I won't say die). Some related discussions about that:

[http://ubuntuforums.org/archive/index.php/t-424721.html](http://ubuntuforums.org/archive/index.php/t-424721.html)

[https://www.reddit.com/r/linux/comments/2fnnva/what_would_ha...](https://www.reddit.com/r/linux/comments/2fnnva/what_would_happen_to_linux_kernel_if_linus/)

<comment><USER3> > attack things with their limited experience and knowledge and fail to > understand things fully before heading in

Over the years I gradually came to this core truth of programming: solving problems is easy, it's _understanding what the problem is_ that's hard.

Kinda sorta similar to "it's not about coding, it's about modelling": [http://www.chris-granger.com/2015/01/26/coding-is-not-the- ne...](http://www.chris-granger.com/2015/01/26/coding-is-not-the-new- literacy/)

<comment><USER4> I found a quote recently by G.K. Chesterton about this that I really like.

"In the matter of reforming things, as distinct from deforming them, there is one plain and simple principle; a principle which will probably be called a paradox. There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, "I don't see the use of this; let us clear it away." To which the more intelligent type of reformer will do well to answer: "If you don't see the use of it, I certainly won't let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it."[1]

[1] [http://www.chesterton.org/taking-a-fence- down/](http://www.chesterton.org/taking-a-fence-down/)

<comment><USER5> That used a lot of words to say very little.

<comment><USER6> It _appears_ to be less true now than in days past, but humans are -first and foremost- storytellers. we like to tell stories, we like to listen to stories, and we -often- better remember lessons imparted in the form of a story.

Moreover, if you're trying to alter someone's opinion about the truth of a matter, you almost _always_ need bolster your core argument with supplemental material. You often don't know much about your listener's background, you probably don't know what motivates him, and he may very well be opposed to your core argument for entirely unreasonable reasons. It's often best to surround your core argument with a large, somewhat varied structure, so that many folks will find _some_ way to latch on to it.

</comment></comment></comment></comment></comment><comment><USER7>
              if (isdigit(*str)) {
      -               io_tlb_nslabs = simple_strtoul(str, &str, 0);
      +               str += parse_integer(str, 0, &io_tlb_nslabs);

      and obviously nobody spent even a *second* asking themselves
      "what if parse_integer returns an error".

Can anybody explain why parse_integer would return an error, when isdigit(*str)?

Also, why is the result (presumably integer) added back to the string?

EDIT: Regarding to "adding to the string" I realize that's just C pointer arithmetic.

<comment><USER8> EDIT: I'm wrong, victorNicollet spotted my mistake. I thought that:

        str == "09"

fails. Leading zero indicates base 8 -> 9 is an invalid digit.

But that is parsed as "0" and the 9 is left in the string.

<comment><USER9> IMHO, "leading zero indicates octal" is as old as it is wrong. There are a handful of cases where this is helpful, and an ocean of cases where it breaks things unexpectedly because someone tried inputting prettyprinted data.

At least with Hex you can't mistake the 0x prefix for anything else.

One of the best features of inet_pton over inet_addr is that the former doesn't do automatic conversions and instead assumes every field is a decimal number. The latter has a hidden trap where 192.168.0.11 is different than 192.168.000.011.

<comment><USER10> Yeah, so it's a wrong thing in 2015 where the only significant use of octal is in unix permissions which themselves are only octal because of PDP-7/8.

The 9/18/36-bits architectures have lost but octal conventions of C was made on the PDP-7 (18 bits) and until the early 1980s, 36-bit machines were commercially available (PDP-10.)

<comment><USER11> I use octal with tr

</comment></comment></comment></comment></comment><comment><USER12> String processing in C is a nightmare. It looks like you basically have to be omniscient to avoid every corner case and potential error.

<comment><USER13> String processing in computers is difficult. You have to be careful to avoid every corner case and potential error.

<comment><USER14> > _String processing in computers is difficult._

Not in e.g. Java and many scripting languages.

<comment><USER15> Write a function that takes three Unicode strings, concatenates the first two, and returns whether they are equivalent to the third.

If your answer is "use a library", that holds for C too.

</comment></comment></comment></comment><comment><USER16> _> We had similar issues with the completely moronic and misdesigned crap called "strlcpy()", which was introduced for similar reasons, and also caused nasty bugs where the old code was actually correct, and the "converted to better and safer interfaces" code was actually buggy._

What's wrong with strlcpy? When I need one, I take the code from OpenBSD: [http://cvsweb.openbsd.org/cgi- bin/cvsweb/~checkout~/src/lib/...](http://cvsweb.openbsd.org/cgi- bin/cvsweb/~checkout~/src/lib/libc/string/strlcpy.c?rev=1.13&content- type=text/plain)

Reasons for having it are surely not moronic because it provides security benefits.

<comment><USER17> It's not strlcpy he had an issue with.

His issue was converting a whole lot of code over to strlcpy() while introducing bugs that didn't previously exist.

For another example of this kind of irrational thinking, look at NeoVim's massive churning changes to the Vim codebase for the purposes of "modernization".

<comment><USER18> What changes to Neovim are you referring to?

We are generally very careful about "cleanup" patches in Neovim. Some examples:

[https://github.com/neovim/neovim/pull/2418](https://github.com/neovim/neovim/pull/2418)

[https://github.com/neovim/neovim/pull/1788](https://github.com/neovim/neovim/pull/1788)

[https://github.com/neovim/neovim/pull/1340](https://github.com/neovim/neovim/pull/1340)

At least one tangible benefit to some of these changes is that it allows us to enable -Wconversion.

We've also rejected dozens of cleanup patches for quality reasons.

</comment></comment></comment><comment><USER9> I'm curious what Linux has against the strl* functions. He says that they can be implemented wrong too, but it seems like they are harder to screw up than the strn* versions that required you to manually terminate the string when it hits maximum length.

<comment><USER19>
      $ ./a.out kjv.txt

Hmm... Why is this taking so long?

      ^\
      $ db core
      ...
      a.c:28:strlcpy(dst, src, 8);
      ...
      > d src
      0040000: 496e 2074 6865 2062 6567 696e 6e69 6e67  In the beginning
      0040010: 2047 6f64 2063 7265 6174 6564 2074 6865   God created the
      0040020: 2068 6561 7665 6e73 2061 6e64 2074 6865   heavens and the
      0040030: 2065 6172 7468 2e20 4e6f 7720 7468 6520   earth. Now the
      ...

Oh, that's why.

<comment><USER9> That doesn't explain anything. The manpage explains the problem though:

RETURN VALUES The strlcpy() and strlcat() functions return the total length of the string they tried to create. For strlcpy() that means the length of src. For strlcat() that means the initial length of dst plus the length of src. While this may seem somewhat confusing, it was done to make trunca- tion detection simple.

So strlcpy/strlcat parse all of src regardless of what you pass on that third parameter. And they'll happily run off the end of the buffer if your string isn't null terminated. I see what Linus was so mad about now. All because they want to return the length of the original string instead of the length of the copied string.

The underlying problem is that C is too limited in return types from functions. There should really be a fourth (optional) flag to strncpy that is set if the string was truncated to fit in the new buffer, and the function would return the number of characters copied, not the number of characters in the source string.

<comment><USER19> True, but another problem for kernel is when something takes too long, which is what I was highlighting in a light hearted manner.

The different return is more like what MS does with the _s routines, though it uses a special length return and flag option.

</comment></comment></comment></comment><comment><USER20> >> People who implement new and improved interfaces always seem to get that wrong.

How many lessons we seem to have to learn the hard way in our careers that others before us have learned: [https://en.wikipedia.org/wiki/The_Mythical_Man- Month#The_sec...](https://en.wikipedia.org/wiki/The_Mythical_Man- Month#The_second-system_effect)

</comment><comment><USER21> Much as I like git, its inconsistencies wind me up sometimes.

Anything that's not very commonly used or immediately obvious tends to be buried in some arcane option, and not always an option to a command you'd expect.

This is not a non-sequitur: Linus might have thought good things while first implementing git, but it's one example of a tool that I use on the command line but has many, many alternative UIs that all claim to be better (not just graphical, even CLI) interfaces.

<comment><USER22> Git isn't the best system—it just became the most popular system. [http://git- man-page-generator.lokaltog.net](http://git-man-page-generator.lokaltog.net)

<comment><USER23> Seems to me that it became popular because it was better than other popular options at the time like CVS and SVN. I use it today because of a choice I made in the past, and I can use it more effectively today than hg.

<comment><USER22> Git is popular because when GitHub was in full startup mode (and not the current $350 million in cash, sit-on-their-hands mode), they ran bar meetups and gave every ruby novice in the world free alcohol to join their platform.

Turns out free booze times tens of thousands of initial users beats the better interface of hg being advertised on impersonal mailing lists.

At this point, (experienced) people have just gotten used to all the weird edge cases and overly complex ways of doing things with git, so changing back to a simpler way is now more complicated.

<comment><USER24> The linux project was using git before github even existed, and would probably still use it even if the rest of the world had chosen, say, bazaar instead.

<comment><USER23> hahah I almost forgot bazaar.

<comment><USER25> Hey, I still use bazaar and aside from some minor quirks it has been quite robust over the years.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> this one made me think on improvement refactorings that always break something, even though the old code needed improvement. Specially just before releases.

<comment><USER26> The best time to push to production is Friday afternoon, everyone knows that!

<comment><USER27> "I don't always test my code. But when I do, I test it in production."

Credit where due: I stole that from a co-worker named Kalen Braley. (He doesn't actually do that, as far as I know.)

<comment><USER28> [https://www.thinkgeek.com/product/f141/](https://www.thinkgeek.com/product/f141/) — if you want it on a shirt :-)

<comment><USER27> Ah. So my coworker stole the saying, just like I stole it from him.

</comment></comment></comment></comment></comment><comment><USER29> A corollary of "if it ain't broke don't fix it" is "if you can't read it don't refactor it."

[http://www.joelonsoftware.com/articles/fog0000000069.html](http://www.joelonsoftware.com/articles/fog0000000069.html)

<comment><USER30> It really bugs me that "refactoring" has been taken to mean _any_ code change (hopefully) without end-user visible effect. We didn't need a new word for that. Refactoring is about doing that in a _rigously reliable way_.

My rule is, if you don't have _good tests_ , you aren't "refactoring" you're "moving shit around and praying you don't break something".

<comment><USER31> My rule is: tests only check the presence of bugs, not their absence. And is usually little more than wishful thinking to delude people into believing their code to be bug-free.

Understanding the code is worth WAY more than having good tests. Most of the great programmers who inspire me don't write tests but have the deepest understanding of whats going on.

<comment><USER4> I've seen far more problems from people who think they understand the code so they don't need tests than from people who write tests to check their code. The best of the best might be able to get by without tests, but us common-folk stand to benefit a lot from writing tests and listening to the design feedback they provide.

<comment><USER31> While I agree with the general idea in theory, I haven't seen it happen that often in practice.

More often than not tests will constrain the architecture of the actual system and result in code that is much more complex than what is required to solve the problem at hand. People then start having blind faith in their tests while being completely oblivious to what they don't test. At that point the codebase is such a mess that you do need tests to maintain it.

People who focus on understanding their code work very, very hard to keep their codebase simple enough to quickly wrap their heads around it. I know I modify my codebase way too much for it to have tests - I'd spend more time refactoring the tests than progressing and I wouldn't be able to simplify the architecture as much because my attention is now on how testable the code is rather than how simple it is.

I see projects shipped with unittests that still required maintenance and debugging 6 months down the road, and others without tests that worked flawlessly out the door.

Of course, there's a difference between understanding and thinking you understand, but that's another matter entirely as we're walking into Dunning- Kruger territory!

I'm not saying tests are bad! Far from it, I do write tests for functions where the logic isn't obvious, but my point is that there's too much focus on testing and not enough on actual quality and simplicity.

<comment><USER30> Sounds like a lot of projects you worked on had tests at the wrong granularity.

Fine grained unit tests are good for helping you find out _where_ a bug is in the code, at the expense of calcifying your architecture. "Functional", "integration", "end-to-end" or other higher level tests don't pinpoint a bug as easily but in return they give you greater freedom to reorganize your implementation.

For example, I work on a code formatter:

[https://github.com/dart-lang/dart_style](https://github.com/dart- lang/dart_style)

It has a metric ton of tests, which is absolutely critical for ensuring a change to one corner of the formatting doesn't regress other things. Formatting is solving a bunch of global constraints, so almost every change interacts with other things.

I've rewritten almost the whole thing twice at this point, and the tests never slowed me down. That's because they're functional tests: they just run the formatter and validate the expected output.

It does mean I spent a hell of a lot more time figuring out _why_ some test was failing, but it made refactoring a joy.

</comment></comment></comment></comment></comment></comment><comment><USER32> This got me thinking how much test coverage exist for the kernel. It sounds like most of those issues could've been caught by tests (and I'm not referring to API compatibility, but purely to the behavior of the implementation)

</comment><comment><USER33> Many times, it might be because most people don't like changes when what they have works, and not because the new interfaces are worst.

</comment><comment><USER34> can unit tests be written for every use case that's known to work with the old method, and then used on every new replacement? People wouldn't even get to submit design changes like this unless it passes all known use cases.</comment>


Ask HN: Looking for a Quiet Windows Desktop - <AUTHOR>

I know this isn't a typical 'Ask HN' question, but I'm looking for recommendations for a very quiet Windows desktop. A friend lives in a small studio apartment and must have his PC near his bed. The fan on his current PC is too loud. The usual search sources (i.e., Google) yield too many useless results, so I thought I'd see if any fellow HN'ers have recommendations. This doesn't have to be the most powerful machine in the world ... it simply needs to run typical home user apps at a reasonable speed. Thanks in advance. <comment><USER2> Isn't it possible to replace the standard fan with a quiet, aftermarket fan? It sure is a lot cheaper than buying a new PC just for the sake of noise reduction. These guys specialize in quiet fans: <http://www.acousticpc.com/index_quiet_computer_fans.html>

Some background: they do a lot of stuff for recording studios, where having a quiet computer is also very important.

<comment><AUTHOR> This is a fantastic resource. Thank you. A new quiet small fast PC is the preferred option (her current machine is a bit slow), but replacing the fan with a quiet fan is very much worth looking into. Thank you.

<comment><USER3> While you're at it, check how much RAM it has. Some older, but not too much older, machines end up RAM constrained and can perform significantly better if RAM is maxed out (if prices for the older RAM have not become excessive).

If you're opening the machine anyway to swap the fan, might be a good opportunity to upgrade RAM.

Beware of spending more on the machine than is worthwhile, though.

</comment></comment></comment><comment><USER4> Might be useful:

<http://www.tranquilpc.co.uk/> <http://www.quietpc.com/>

</comment><comment><USER5> Microway if you have the cash: <http://www.microway.com/whisperstation/whisperstation.html>

</comment><comment><USER6> Does it have to be a desktop? How about a Macbook Air or some netbook with a monitor attached? Or why not just hibernate the machine he already has when sleeping?

<comment><AUTHOR> The person is disabled, so getting to the PC just to turn it off or hibernate it is quite a hassle. Also, it needs to be able to run Windows XP or greater in order to run her software. One option I'm considering is a Mac mini running Windows via Virtual Box or VMWare or Parallels, but that seems like overkill. Seems like there should be a small quiet reasonably-fast Windows box for under $500 from someone (she already has a nice monitor, and her special keyboard and mouse). Thanks again.

<comment><USER7> Can't you just set the automatic hibernate timer to something reasonable?

It would auto wake when the keyboard/mouse is used.</comment></comment></comment>


Why Knowledge-Management should be like Facebook - <AUTHOR> http://wisdomclouds.posterous.com/28288131

<comment><USER2> I think StackOverflow is Knowledge-Management.It facilitates the collection of expert's knowledge from all over the world, stores it, rates it, allows others to search on it and comment/correct/elaborate on it. But at the moment it is a push-model - someone has to ask a question first and the experts reply to it.</comment>


LibrePCB: First release candidate - <AUTHOR> https://librepcb.org/blog/2018-10-21_release_0.1.0-rc1/ <comment><USER2> It is very cool to see that lately there are some conceptually different counterparts to KiCad out there.

I stumbled uppon LibrePCB at least a year ago, I can't wait to test it. Currently I am totally hooked on Horizon EDA (see: [https://github.com/carrotIndustries/horizon/wiki/Feature- ove...](https://github.com/carrotIndustries/horizon/wiki/Feature-overview)) which has a especially cool library managment IMO. I am curious how LibrePCB changed over that period

</comment><comment><USER3> Can anyone comment on how this compares to KiCad? That's been the best open source EDA tool for me so far.

<comment><AUTHOR> U. Bruhin (the primary author of LibrePCB) answered this question on Reddit ([https://www.reddit.com/r/PrintedCircuitBoard/comments/9q4j1n...](https://www.reddit.com/r/PrintedCircuitBoard/comments/9q4j1n/librepcb_first_release_candidate_is_out_ama/)):

\---Quote:---

Hi! LibrePCB has some very new concepts, especially for library management. You should take a look at my talk at FOSDEM: [https://www.youtube.com/watch?v=vu-h5y6tK34](https://www.youtube.com/watch?v=vu-h5y6tK34) (Slides: [https://archive.fosdem.org/2018/schedule/event/cad_librepcb/...](https://archive.fosdem.org/2018/schedule/event/cad_librepcb/attachments/slides/2267/export/events/attachments/cad_librepcb/slides/2267/librepcb_slides.pdf))

As these are extremely different to KiCad's concepts, it would be very difficult to contribute that to KiCad because they need to provide backward compatibility. And KiCad already has a _lot_ of legacy code, so it would become even worse when changing very fundamental concepts. It's very questionable if KiCad developers even would accept such fundamental changes - actually I'm pretty sure that they wouldn't agree with some of LibrePCB's concepts. So the only way was to create a completely new project.

And LibrePCB 0.1.0 is only the beginning - I have many more ideas how an EDA tool should look like. With a standalone project I'm much more flexible to implement new features than if every feature would need to be contributed to KiCad.

</comment></comment><comment><AUTHOR> LibrePCB is a free EDA software to develop printed circuit boards. The focus is on a good library format and on ease of use. This first stable release candidate is the result of about five years of work!

</comment><comment><USER4> I have been following this project on GitHub. Good to see that it's moving forward.</comment>


Stackoverflow Developer Survey 2015 - <AUTHOR> http://stackoverflow.com/research/developer-survey-2015

<comment><USER2> Always interesting to look at these surveys.

I especially liked looking at the compensation and purchasing power charts. At first, the United States looks like it is unquestionably the best place to work (compensation wise) while Eastern Europe was the worst. But then when you get to the Big Mac index chart, you can see that devs in the Ukraine (Eastern Europe) have the most purchasing power.

Interesting.

<comment><AUTHOR> Yes Ukraine is surprise for me as well

</comment></comment><comment><USER3> Around 54% of the respondents to the survey use Windows as their desktop operating system. In contrast, HN seems to be heavily skewed towards Mac OS X or GNU/Linux.

<comment><USER4> Not necessarily. Just that people who use less common tools tend to be more vocal about them. E.g. the most popular text editor is notepad++, but most text editor arguments are between vim and emacs. The kinds of people who use vim and emacs are just more passionate about text editors, and so more likely to speak up about them.</comment></comment>


Two mysterious web font bugs that no one seems to be talking about (2018) - <AUTHOR> https://medium.com/@ValidScience/two-mysterious-web-font-bugs-that-no-one-seems-to-be-talking-about-861022e7fe69 <comment><USER2> Sadly this is mostly a rant about companies not testing on Windows and doesn't contain any technical details about the bugs he's talking about.</comment>


App economy - great look at the 2 year growth blitz behind apps - <AUTHOR> http://www.businessweek.com/magazine/content/09_44/b4153044881892.htm?chan=technology_technology+index+page_top+stories

<comment><USER2> 85000 apps? And a handful of successes. Not much different from any other software startup arena. And the biggest winner of course: Apple.</comment>


The Anti-If Campaign - <AUTHOR> http://www.antiifcampaign.com/ <comment><USER2> This sort of debate annoys me - not so much because of the potentially fragile design on one side or the perhaps pedantic adherence to OOP principles on the other, but because I know that I _could_ have things like pattern matching and a scarily expressive type system and, well, that'd make a lot of these problems disappear.

Curse you, Haskell, for making me so bitter!

</comment><comment><USER3> This is a joke, right? They're making fun of all the programs you see that have 20 different forests of tiny classes spreading the logic of one function across 45 files, right?

<comment><USER4> You mean Lussumo?

</comment></comment><comment><USER5> Don't solve with conditionals that which can be solved by your language's dispatch mechanism.

<comment><USER3> Don't solve with 15 minutes that which you can bill your client 80 hours for.

<comment><USER6> And don't forget, lots of those 15 minute intervals can add up to serious money. ("Stovepipe" systems.) You can also set up an opportunity to bill for coming later in and "fixing" a seemingly intractable big mess.

<comment><USER3> "Oh, I see the problem right here, Mr. Client. Your previous consultant used 'if' statements. Here, let me replace that function with 80 new class files. You'll be much more agile!"

<comment><USER6> I find that the opposite is true: replacing lots of runtime type identification with polymorphism results in placing repeated code in just one place. Don't Repeat Yourself is more agile. Even better: wait until at least the 3rd repetition before refactoring. (But don't wait too long.) This cuts down a lot of unnecessary coding, and leaves the programmer some leeway for good judgment.

</comment></comment></comment></comment></comment><comment><USER7> Oddly named campaign to promote better use of inheritance. "The Anti-Type Fields Campaign" would be more appropriate and less confusing.

<comment><USER8> Inheritance or polymorphism?

<comment><USER9> calambrac gets it right: 'dispatch'. I though the article was going to be about pattern matching, actually. I guess polymorphism is a sort of pattern matching, but the real thing goes farther.

</comment></comment></comment><comment><USER10> I think this "campaign" is aimed at a developer less capable than the crowd we see on HN. I used to work with a whole team of people where OOP is a strange concept. I think the Anti-IF rule can help people think in a more correct fashion if they're confused about Inheritance.

</comment><comment><USER11> These days, I tend to use COND rather than IF.

Ah, but the page implies use bunches of teeny classes. Was that what Alan Kay had in mind when he coined "Object Oriented Programming"?

</comment><comment><USER12> This strikes me as particularly funny as I'm working on a module of code where I had to use a type field and an 'if' statement to get around a dynamic cast that was killing performance.

(Virtual functions were not an option as this was taking place inside an STL '==' comparator.)

</comment><comment><USER13> after vanquishing all if statements, we're going to go after function calls.

And after that, we will eliminate source code, because it's too complicated. Everything you need to do can be done with 5x7 index cards.

<comment><USER3> First they came for the function definitions, and I said nothing, for I used lambdas.</comment></comment>


What's Next in Web Design? - <AUTHOR> http://informationarchitects.jp/whats-next-in-web-design/

<comment><USER2> If the rumors surrounding the iSlate are correct we may see a new line of web sites that are touch optimized, multimedia intensive and built for leaned back browsing.

In general, web sites not built for PCs (mobile, TVs, tablets, refrigerators) is one thing I think we'll see lots more of in 2010. OK, maybe not refrigerators.

<comment><USER3> I think we'll see a renewed interest in accessability since :hover will be tricky on a tablet.

Aside: anyone else find this sentence jarring: "Successful websites such as Google, Flickr, or World of Warcraft..." Besides calling WoW a website, it doesn't really support their point. The game makes the money, the WoW website is just an expense to support the game.

</comment></comment><comment><USER4> Wow I really disagree with this. Most websites do have a profit model, or were never tying to make any to begin with. Correctly said most /popular/ web businesses don't have one. A large majority of sites are just personal pages or business giving itself a web presence, most of these pages (outside blogs) aren't ones we visit daily. Even then some companies always had the revenue model of advertising, like newspapers and TV they just haven't quite adapted it to the web. Depending on how much they charge Comedy Central seems like they might have a good plan for translating TV to the web and be profitable.

I disagree with Speed of the remote too. sure it's fast to flip channels and radio stations but that's not much different than clicking next on a page as long as the button doesn't move it's just as fast. I for the life of me can't figure out how to turn on closed captioning on my tv with the comcast remote. I know it can be done, but to be honest where ever it is it's not obvious. And how do I find the channel comedy central is on if I don't know it? I have browse a channel at a time? this is horrible with a few hundred channels, they need to make it more scalable like DNS + search engines is (on demand actually has a decent interface lets make the whole guide alphabetical shall we). On a radio the only reason I can get directly to say station 106.1 is because I have it programmed in to my favorites. Radio's UI would be much simpler if they had a keypad like a phone and you could type in numbers as well as with a seek.

He says designers need to learn more about traditional product design but honestly tell me how you're going to translate a 3D dresser drawer to a website.

He says that more users move from individual designed websites to "platforms" (my simplification) this is not true, lots of people who had there own site now use these platforms for additional marketing, most have not moved from there original source. Most users using these sites do not have, never did, and never will have a need for a professionally built site.

Also Technology moves from primitive to complicated to simple? that what I call the Comcast remote with 100 buttons and not one can turn on closed captioning. I can't honestly think of technologies that moved from primitive to complicated to simple. Most I see only get more complicated as features are added, sure some have really bad UI and are complicated but that doesn't mean that's how technology works. Would you say the telephone today is more or less complicated than even 20 years ago? In fact I'd say that all technology just gets more complicated not less, though sometimes the UI gets improved to hide that complication.

Honestly I don't think this guy has a clue at reality, his head is in a Silicon Valley reality perhaps.</comment>