Wind Map - <AUTHOR> http://hint.fm/wind/ <comment><USER2> Not actually a good representation for wind energy potential, because wind power is cubic in wind speed (v^2 for kinetic energy per unit volume, times v^1 for volume/(cross sectional area * unit time)). So energy potential is concentrated in the "long tail", infrequent high winds. (E.g. 30 mph is 8x more powerful than 15 mph, 27x more than 10 mph). The distribution looks much more "uneven" -- both in space (clustered) and time (fluctuating) -- than a linear-in-windspeed map shows.

Off topic: if anyone's looking for a slightly gigantic weather history dataset ("oodles of terabytes"), look at [1]. It has accumulated "a few thousand" weather stations, at 5 minute intervals, going back "a few" years (I forget the numbers).

[1] <http://madis.noaa.gov/>

<comment><USER3> It's easy enough to convert something like that to energy potential, but when determining whether a site has good potential for wind energy development we really do tend to think of the wind in terms of speed (in m/s) and not energy density.

Depending on the capture technology (even specific wind turbine models using a certain technology) and project arrangement the variation even at a single location is very high.

And this is a beautiful visualization of the flow.

<comment><USER4> If you are in the business of determining whether a site has good potential for wind energy development, answer me this if you can: what is the maximum realistic potential percentage of the U.S. energy consumption that windpower could satisfy in 10, 20, 30, 40, and 50 years given realistic conditions (funding, available land, etc.)?

<comment><USER3> That question is literally a massive research project and I couldn't begin to answer it here. The best place to start is probably the DOE 20 percent by 2030 report released in 2008.

<http://www.20percentwind.org/20p.aspx?page=Report>

The US has huge amounts of available wind energy, but constrained supply chain, development, and transmission resources. 20% by 2030 is technically possible but will require huge amounts of work.

<comment><USER5> Note for those unfamiliar with the field: there is a considerable difference between "X% of electricity use" and "X% of power use" (for the USA, about a 1:6 factor, if I read <http://en.wikipedia.org/wiki/Energy_in_the_United_States> correctly). That 20percentwind.org site, to me, has the former as a goal.

<comment><USER6> You have it right. 20 % of electricity use means, that on average power is the same 20 %. When it is blowing in large areas, more than 50 % of electric power is produced by wind turbines and when it's not blowing the percentage may be very small. In Portugal the maximum power share wind turbines have had is 75 %, though only 17 % on average is produced by wind.[1]

This creates two problems:

1) You need to have a lot of transmission capacity, which is used very inefficiently. With conventional powerplants you can forecast pretty easily, where and how much electricity is produced and consumed and you can size power grid accordingly (with backup capacities, of course). With wind power the production places and amounts are all the time changeing and you should have plenty of capacity, of which on average only small share is used.

2) To cover the consumption during non-windy times, you need to maintain backup power plants, which should be able to follow load rapidly. Water power is ideal for this, but as penetration level raises you need also other power plants, gas turbines for example (but who wants to maintain a turbine, which is used rarely...). Also batteries may be applied in the future, but in large scale that is nowadays pretty much science fiction.

[1] <http://en.wikipedia.org/wiki/Wind_power#Penetration>

</comment></comment></comment></comment></comment></comment><comment><USER7> This is beautiful and a brilliant, intuitive "100,000 feet up" picture of wind movements.

But it's not horribly useful if you are interested in wind conditions at a particular place. Trying to figure out if a spot is experiencing 15mph wind vs 10mph is hard, for instance.

Compare it to these maps: <http://passageweather.com/> which are not pretty nor are they intuitive but they are useful for someone trying to use the map to get detailed, localized wind condition information.

It seems like there should be some kind of middle ground between this wind map and maps like passageweater.com, maps that are intuitive and pretty but also provide detailed, useful information.

<comment><USER8> Is a 5 mile an hour difference important?

<comment><USER9> Yes, absolutely, for many sports that rely on wind, such as wind- or kite- surfing.

</comment></comment></comment><comment><USER10> Beautiful visualization! It would be interesting to have an underlay showing the topography so one can correlate features in the wind pattern with mountain ranges, etc.

<comment><USER11> If you could get at the GIS data sets you would be golden. Anyone know of an easy way to integrate GIS data into web applications?

<comment><USER12> Would something like tilemill help? <http://www.tilemill.com>

<comment><USER11> That is the coolest thing I have seen in a very long time. Thank you!

</comment></comment></comment></comment><comment><USER13> This reminds me of the proof that there is always a point on the earth where there is no wind. This is a property of spherical surfaces: <http://en.wikipedia.org/wiki/Hairy_ball_theorem>

<comment><USER14> There is only a windless spot on earth if you take wind to mean air moving horizontal to the earth's surface. Otherwise imagine that we have wind that points north along the ground, with wind pointing up at the north pole and down at the south pole (and higher up wind comes back south).

<comment><USER13> That's a good point. I think the surface you are describing (that the wind would sweep out) would be a torus. The 2-torus is "combable."

</comment></comment></comment><comment><USER15> I am used to seeing wind markings on aviation maps (e.g. <http://www.aviationweather.gov/adds/winds/>) but it's pretty cool how much clearer this map is. It makes me wish I could see a much larger portion of the world so I could get a better understanding of the currents that are entering/exiting the US.

</comment><comment><USER16> That's amazing. It's so inspiring to see someone can have such a simple idea, execute, and create something not only incredibly intuitive and useful, but beautiful too.

It makes you wonder what other things are out there waiting to be done, and what you can do.

<comment><USER17> I'm not so sure it's exactly simple to implement. A quick glance at the code, it seems like they had to implement vector field support from scratch.

<comment><USER18> I haven't looked at the code and how they implemented vector field support, but couldn't a library like Sylvester have been used?

<http://sylvester.jcoglan.com/>

Paper.js looks like it could work as well:

<http://paperjs.org/about/>

</comment></comment></comment><comment><USER19> been wanting to do this myself for like forever. it looks like they are using high level summary data from the NWS ... they also have this amazing thing called MADIS which focuses on micro climate research (and more) ... so in theory you could get a high resolution version of this for san francisco or nyc, and that'd be really great and possibly rather useful too. I think the Weather Underground is a subscriber of MADIS, and their "rapid update" feature has some of this, and also I should mention some of this is collected by ham radio people in their spare time too.

</comment><comment><USER20> Never before has a piece of software made me wish for a hurricane to ravage my country simply out of curiosity.

</comment><comment><USER21> This is beautiful, but I find it lacking because of the focus on the US mainland exclusively. It would be nice to see North America as a whole along with a good part of the Pacific and Atlantic, because these areas have a massive effect on wind patterns.

For example, the wind over the Chicago is travelling "backwards" for no apparent reason. This is most likely due to this being the "backward half" of a cyclonic system centred over Canada.

The other thing that struck me is the effect the Southwest desert has on wind patterns over all... just, wow.

</comment><comment><USER22> Very cool. It's interesting to see how elevation affects the wind here (<http://www.theodora.com/maps/new9/usa_elevation_map.gif>), but I'd wish there was a worldwide version. (I'm aware that you need a data source)

Should you be interested, here's data from the Netherlands: <http://www.knmi.nl/samenw/hydra/cgi-bin/register.cgi>

</comment><comment><USER23> They are using a bad dataset. Some of the discontinuities you see are administrative boundaries between National Weather Service forecast offices.

<http://nixweb.com/dust/> is my version, for the SF Bay Area only. It was 15 years ago so pardon my Java applet.

</comment><comment><USER24> Where is the wind over the water? Who cares about what the is on land? As a sailor, I find this map frustrating and upsetting for showing me beautiful wind everywhere I _can't_ sail a boat.

</comment><comment><USER25> Beautifully done. Just discovered you can zoom in by double clicking.

</comment><comment><USER26> very pretty. related: <http://windhistory.com>

</comment><comment><USER27> I got lost for quite awhile looking at all the wind and how it moves around the area I'm pretty sure is my mountainous home. Kudos to the maker(s).

</comment><comment><USER28> This appears to be an animated form of line integral convolution. Cabral and Leedom paper's from SIGGRAPH '93, Imaging Vector Fields Using Line Integral Convolution (PDF):

[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.115...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.115.1636&rep=rep1&type=pdf)

<comment><USER29> This is great, Mike - thanks for sharing the doc.

</comment></comment><comment><USER30> They should add Canada, Mexico and the ocean if possible to see where these in and out flows are coming from.

<comment><USER19> or tie it in with the ocean viz from nasa from the other day! unfortunately most of the data i could find for canada was only in the south, and the mexico data was similarly in only the more densely populated areas.

</comment></comment><comment><USER31> My favorite wind potential graph, NPR's "Visualizing the U.S. Electric Grid"

[http://www.npr.org/templates/story/story.php?storyId=1109973...](http://www.npr.org/templates/story/story.php?storyId=110997398)

Makes offshore look pretty good.

</comment><comment><USER32> This visualization is incredible but it made my browser freeze for almost a minute :(

</comment><comment><USER33> Really a stunning presentation of this data. A huge "whoa." moment when it loaded.

</comment><comment><USER34> Brilliant.

On a side node: Anyone else reminded of Deluxe Paint palette cycling animations by this?

<comment><USER35> Yes, of course! The master of this technique is here: <http://www.effectgames.com/demos/canvascycle/>

<comment><USER34> Thanks!

</comment></comment></comment><comment><USER36> This would be even cooler if you could display wind speeds at different elevations above the ground. I am guessing that at a certain elevation you have higher winds that kites might be able to capture energy from.

</comment><comment><USER17> It's also neat because you can tell where the mountains are. They're the sections where the wind was pretty slow, and then it speeds up and then slows down again. You can see it over the Rocky Mountains.

</comment><comment><USER37> I can zoom really far in by double-clicking, but I cant zoom back out.

I have to refresh to zoom out.

This is BEAUTIFUL.

It would be cool to see the different speed ranges reflected by [color of my choice] as well!

<comment><USER38> There's an UNZOOM button on the left.

<comment><USER37> What do you want? Me to actually READ the websites!?

</comment></comment></comment><comment><USER39> This would be even better if it could display change over time. To support, for example, animate the change in wind direction for the past week.

</comment><comment><USER19> some previous visual inspiration possibly for project: (based on lidar data) <http://www.datatelling.com/2011/07/29/wind-flow/>

[http://www.shiffman.net/itp/classes/nature/week06_s09/flowfi...](http://www.shiffman.net/itp/classes/nature/week06_s09/flowfield/)

as well as the big nasa ocean viz from the past few days

<comment><USER40> predates both of those by quite a bit: <http://nixweb.com/dust/>

</comment></comment><comment><USER41> Odd that they didn't label any of the cities in the places that seem to have the greatest generation potential.

</comment><comment><USER42> This will be a great tool for paragliders. I will post this on paraglidingforums Thanks for the link.

</comment><comment><USER43> A nice addition might be the current locations of wind farms (if that data is accessible someplace).

<comment><USER44> Have already been working on an app for this (just for lulz); haven't had time to finish it yet. I pull from public DOE data regarding generation locations.

</comment></comment><comment><USER45> Looks beautiful but barely usable. Winds have different speed and direction at different altitudes.

<comment><USER46> This. The site should clearly state whether they're showing 1000ft prevailing winds, jetstream-level currents (around 30,000 feet) or more surface-level effects. All the people talking about power generation from this data should be aware that the only wind that matters there is below 1,000 ft (in many cases, far below 1,000 ft.)

<comment><USER16> "Surface wind data from the National Digital Forecast Database."

</comment></comment></comment><comment><USER47> its been said by others but this is an incredible visualization of a massive amount of data in a beautiful and intuitive medium. it'll be interesting to have this for other large datasets eg. real time web usage...

</comment><comment><USER31> So... I want this for all of the world, extrapolated over the oceans.

</comment><comment><USER48> Looks a lot like a chunk of hair. Very neat implementation!

</comment><comment><USER11> I wish they would make this open source. It is beautiful.

</comment><comment><USER49> Wow that's cool. Where do you get the wind data?

</comment><comment><USER50> I love this i think it is really cool. Where is Alaska and the rest of the united states?

</comment><comment><USER51> I want color!

</comment><comment><USER52> I want this as a screen saver!

<comment><USER53> I was thinking a desktop background version.

</comment></comment><comment><USER54> Wind power, baby.

</comment><comment><USER55> beautiful, but not sure how useful it is?

</comment><comment><USER56> great stuff, but my cputemp is in the clouds</comment>


TextMate 2.0 Hits Beta 1 milestone - <AUTHOR> https://github.com/textmate/textmate/commit/9aeb528d4c5d278eeef296e1fc60e79bd77c2595 <comment><USER2> Serious question: is anyone still using TextMate? Everyone I personally know who used to use it (mostly web developers) has switched to Sublime.

<comment><AUTHOR> I switched from TextMate 1 to Sublime, hated it, and switched to TextMate 2.

<comment><USER3> Why did you hate it?

<comment><AUTHOR> Primarily because it didn't feel anything like a Mac app.

<comment><USER3> The UI can always be updated, being proficient in something no matter how it looks will take you farther than hoping on or abandoning tools based on their appearance.

<comment><AUTHOR> Who said anything about looks? I'm talking about how it feels. Very important distinction, and not something that seems fixable for a cross platform app. I'd been using TextMate since 2006, and I was extremely proficient with it. I only gave it up because it was so outdated (main thread find-in-files, e.g.).

</comment></comment></comment></comment></comment></comment><comment><USER4> This has probably been the most stable Alpha I've ever seen (it's been +3 years in alpha). I wonder what their requirements are before they call it final release.

</comment><comment><USER5> I wonder if it's possible to build it under GNUStep. Has anyone tried?

</comment><comment><USER6> That's like when you hear about new Firefox versions. Easy to forget these legacy softwares that were king of their day are still crawling around. I imagine both still have their followings and always will.

<comment><USER7> My friend, Firefox has _half a billion active users._ Half a billion. While their usage share has declined, the overall number of Internet users has grown, so the absolute number of Firefox users has remained stable or even grown.

source: [https://blog.mozilla.org/press/ataglance/](https://blog.mozilla.org/press/ataglance/)

Now maybe Mozilla is lying, which I suppose is possible, but they have a pretty good idea of how many people use Mozilla since nearly every copy of Firefox pings Mozilla's servers to check for updates on a regular basis.

Based on Mozilla's usage share relative to Chrome's usage share, that number seems to roughly jive with Google's claims for the number of active Chrome users: [http://www.theverge.com/2014/6/25/5841924/google-android- use...](http://www.theverge.com/2014/6/25/5841924/google-android- users-1-billion-stats)

I wish I was so unfortunate as to create a "legacy softwares" that is still "crawling around" with such a huge, supportive, dedicated user base of half a billion people strong.</comment></comment>


Law of Demeter and immutability - <AUTHOR> http://enterprisecraftsmanship.com/2016/09/29/law-of-demeter-and-immutability/ <comment><USER2> The author claims that Dementer's law is primarily there in order to prevent state corruption. I don't know if I agree with this premise. There are also 2 other reasons to follow Dementer's law:

1\. Make it easier for your users to achieve specific goals through a single method call, instead of having to know & go through a chain of method calls. Ie, instead of having to know that the Dog object has Leg sub-objects, and having to call Dog.getLeg().selectMuscle().contract(), the user can instead just invoke Dog.move(). This enhances simplicity, and makes life easy for your users.

2\. Hiding implementation details from your users, in order to maintain flexibility for future changes. If all your users are calling Dog.getLeg().selectMuscle().contract(), then you're forced to work with this Dog->Leg->Muscle implementation. On the other hand, if your users are simply calling Dog.move(), then you're free to refactor the class internal structure in dramatic ways.

The fact that an object is immutable, has little impact on the 2 benefits given above. Dementer's Law/Guideline would be well worth paying attention to for those reasons, even when dealing with ImmutableObjects.

<comment><USER3> Coupling is an important concept but I think this concern can be mitigated by following the DRY principle. That is, if you have only one function that knows about the object's internal structure ("couples" to it, so to speak), it doesn't really matter where exactly that function is located – in the class itself or in some other place.

Also, your example isn't entirely valid as you mutate the objects' state.

<comment><USER4> Demeter's Law is also called the Principle of Least Knowledge. The reason being that, if you have two dogs -- one robotic and one mammalian -- reading the angle of the second joint distal from the hip is going to walk a distinct path for each type, which requires some otherwise-dog-agnostic piece of code to now know about what types of dogs exist and how to traverse their skeletal chains.

IMO Law of Demeter is not chiefly about state protection -- it's a principle of good design which, when followed, unburdens developers from the cognitive load of keeping the entire universe in their heads. It forces them to think about what is the smallest amount of information this component needs in order to function.

<comment><USER3> I do agree with this one.

</comment></comment></comment></comment><comment><USER5> There is in my mind another important benefit of following the Law of Demeter: it minimizes coupling.

Even in functional programming if you are digging into a data structure 5 levels deep, you are potentially coupling a function to 5 different structures, rather than just one.

For example: game.player.bbox.topLeft.x has the potential to break if the game, player, bbox, or point structure change, which makes it fragile. If using an IP language with inheritance, it could also break if any of their super classes change.

<comment><USER6> Coupling is what the LoD is about, not mutability, its not just another important benefit, its the main point.

</comment></comment><comment><USER7> Disagree with the premise. The purpose of Demeter isn't to prevent one class from mucking up the internal state of another, that's a side-effect. Its purpose is to prevent one class from being coupled to the internal structure of another so that if you change one, you don't have to change the other. It stops _code_ updates, not _state_ updates, from rippling out.

This is why the _original_ formulation of the LoD didn't talk about instances, it talked about _classes_. You were only allowed to know about the surface- level structure of your neighbours, but anything else of the same class as your neighbours was fair game. So in the `player.Position.X` example, we actually don't have enough information to know if it's a violation or not: we don't know what class `player.Position` is, and we don't know whether it's a legitimate neighbour class. If there's another `Position` field somewhere in scope that's legit, `player.Position.X` is allowed, because we're already coupled to that structure, and getting to it via the `player` object doesn't add any coupling that wasn't there already.

<comment><USER8> Getting most object-oriented programmers to think about the static structure of their programs (e.g., classes rather than objects, variables rather than runtime values) is going to be an uphill battle.

</comment></comment><comment><USER9> > The law of Demeter is a guideline

I'm not really sure that much more had to be said than that. There are many instances (especially when you have a data structure that is also a class) where the law of Demeter is a guideline and just that.

However, the caveat is that this:

        int positionX = player.Position.X;

Should really look like this:

        if(player.Position != null) {
          int positionX = player.Position.X;
        }

In which case having a getter eliminates the need for error handling to be spittled all over the codebase. Having an accessor means you can nip checking for a null reference in the bud. There are other benefits as well.

<comment><USER10> ... or you could just use a language which doesn't allow "null".

<comment><USER9> I can't think of a programming language used for game development that doesn't have null.

<comment><USER11> In Rust, an `&Thing` (reference to thing), `Option<&Thing>` (optional reference to thing), `Box<Thing>` (thing on the heap), and `Option<Box<Thing>>` (optional thing on the heap) all have the same in-memory representation of a single pointer, but prohibit accidentally dereferencing a null pointer, and make non-nullable pointers the default.

<comment><USER12> That made my head hurt.

</comment></comment></comment></comment></comment><comment><USER13> End goal is to make code that is easier to maintain and understand.

The intermediate goals should be to reduce coupling, increase encapsulation, etc. These are tools to achieve the end goal.

Multiple dots is just a code smell, indicating that you're probably not meeting your intermediate goals or the end goal. If you see multiple dots, you should probably examine that code to see if it "wants" to be somewhere else, in service of the Primary goal.

But if you elevate "multiple dots" to the level of a "Law" then you're looking at the problem from the wrong end, and are in real danger of losing sight of the end goal. You can follow this law right down a hole that works AGAINST your real goal.

</comment><comment><USER14> This "law" sounds like a reasonable idea, at first, but if you think about it for a few seconds, you'll realize that it makes little, if any, sense (at least, when taken out of some specific context). As the designer of the class, often neither you can possibly anticipate all the ways in which objects of the classes involved will be used, nor would you _want_ to re-expose all (or some of) the APIs provided by the "subordinate" classes.

<comment><USER12> > _As the designer of the class, often neither you can possibly anticipate all > the ways in which objects of the classes involved will be used_

That's why you subclass -- or compose. The subclass can use them in other ways.

The problem with what you say, that you can't "possibly anticipate all the ways in which objects of the classes involved will be used" is that if you let that happen, then you have to forever support the different ways by which they are used -- and you can't change your implementation internally, make it more efficient etc, because different external code uses various internal details of it.

</comment></comment><comment><USER15> Gross mutable OO null-defensive nonsense.</comment>


Dumbest Business Ideas of All Time (That Made Millions) - <AUTHOR> http://www.toiletpaperentrepreneur.com/big-success-stories/dumbest-business-ideas-of-all-time

<comment><USER2> Goes to show in business, much of it depends on your salesmanship skills, and above all, luck.</comment>


Automatically Link Twitter Usernames In Content - <AUTHOR> http://www.paulund.co.uk/automatically-link-twitter

<comment><USER2> ... on WordPress - like that's the only system anyone ever uses.</comment>


China's Local Governments Are Faking Coronavirus Recovery - <AUTHOR> https://www.caixinglobal.com/2020-03-04/lights-are-on-but-no-ones-working-how-local-governments-are-faking-coronavirus-recovery-101524058.html <comment><USER2> Anyone got text from behind the paywall?</comment>


Simple -- Announcing Goals - <AUTHOR> https://www.simple.com/blog/Simple/announcing-goals/

<comment><USER2> As a Simple user (the invites DO eventually arrive), I'm excited to see the goals feature and it will definitely help me make better financial decisions and sock money away rather than spend it - that "safe to spend" meter becomes the new normal and you adjust your life accordingly. It's amazing how "rich" or "poor" you feel based on that number and how it dictates spending decisions day to day.

Can't wait until joint accounts because that will enable a real shift of my finances to Simple so I can start really hitting my goals.

Keep up the good work!

<comment><USER3> I received my invite 1 week ago, and I completely agree that the 'safe to spend' meter becomes the new normal. It is a simple concept that really shifts your thinking - much for the better. I would love to hear the story on how they hit on that.

</comment></comment><comment><USER4> I got in a while back, transferred some money in, then realized that it's no better than my credit union (actually worse, in it's current stage) feature- wise (yet, hopefully), and transferred my money back.

<comment><USER5> I felt similarly disillusioned. In the fine print there is also an inactivity fee if you don't use your simple account-- feels very counter to their ostensible philosophy.

</comment></comment><comment><USER6> I signed up about a year ago, and finally got an invite a couple weeks ago. The signup process is certainly impressive, as far as UX is concerned.

It requires iPhone at the moment (just to sign up), which was a bummer as I personally prefer Android. I have a test device I use for work, so I was still able to go through with the signup process. I'd received my card about a week later.

I'm patiently waiting for the Android app before using it with any regularity, so for now I consider it a savings account.

<comment><USER7> Is the app an integral part of it? I don't do any banking on my phone.

<comment><USER8> No. Right now, they only use it for 2-factor auth when you send money to someone and for sending your signature during signup.

</comment></comment></comment><comment><USER9> Simple looks pretty neat, but I feel like I requested an invite almost a year ago now and still haven't received one. New features are great, but meaningless to me if I can't use them.

<comment> simba-hiiipower yup, and it's somehwat disheartening to hear you requested an invite almost a year ago and still haven't gotten in. i registered about 5-6mos ago; guess the wait's going to be a lot longer than i figured..

<comment><USER10> The original invites started over 2 years ago, and those people just recently received a card. So if people who signed up a year ago have also been let in, others can't be too far behind.

</comment></comment></comment><comment><USER11> With apologies for hijacking the thread - I tried resetting my password for my existing account today, but have had no luck to my gmail address getting anything, and there is no other contact information on the website... help?

</comment><comment><USER12> I requested an invite sometime on or before 1/24/11 (my earliest email from BankSimple acknowledging I had requested an invite) and still haven't received the invite.

Guess they don't want me?

<comment><USER13> I found that they were extremely responsive on Twitter and even told me when to expect the invite. Might want to reach out to them there.</comment></comment>


Ask HN: Pre-JS, were any other languages considered for dynamic web pages? - <AUTHOR> I know of Java applets, but other than that, I'm just interested in a little historical perspective - what if Perl (as one concrete example) had been used for dynamic web pages instead of developing a new language for non-static web pages? <comment><USER2> Microsoft did have a PerlScript ActiveX engine, similar to JScript and VBScript, but I don't think it was used with IE.

</comment><comment><USER3> The only one I'm familiar with is Microsoft's proprietary VBScript[1] language. AFAIK, it was only ever supported in IE (from a browser perspective).

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


CssPad - an iPad made with CSS using Quplo - <AUTHOR> http://csspad.quplo.com/ <comment><USER2> If you can "prototype" an app in HTML/CSS for an iPad it makes me wonder why one would rewrite it in Objective-C in the first place.

<comment><USER3> The App Store makes it easy to sell your App. Outside the App Store, you have to rely on your own setup. I'll go as far to say that the majority of apps in the app store could be web apps and work just as well.

<comment><USER2> This is what I was alluding to. For the most part, unless it is an OpenGL game then a mobile web app can do most if not all of the same work - and its immediately cross platform. Dropping a browser view into an app and selling it that way even allows you to give 30% of your money to apple if thats what you want.

</comment></comment></comment><comment><USER4> Apple's SDK comes with iPhone Simulator.app that — despite the name — is also a full iPad simulator with Mobile Safari.

Besides, "You can make CSS images with rounded corners!" is getting old. Author even failed to put _standard_ properties that would make it work in Opera and IE9.

</comment><comment><USER5> How does it handle absolute positioning? scrolling?

Firebug to the rescue:

\- absolute positioning works great

\- content overflows (so it still needs some scrolling solution)

</comment><comment><USER6> I think it would be a little more impressive if the time was correct when viewed. Otherwise, nice job.

<comment><USER3> Ahh, but the time choice is clever.

<comment><USER7> To save other people a google, that's the time Apple uses for iPhone screenshots in their keynotes that start at 9 am, so that whey they are displayed they have approximately the right time.

[http://www.pcworld.com/article/193998/iphone_mystery_solved_...](http://www.pcworld.com/article/193998/iphone_mystery_solved_why_time_stands_still_at_942.html)

</comment></comment></comment><comment><USER8> no harm intended, but this is really just 3 well used css3 properties (ok, so one's a function)

</comment><comment><USER9> "as HTML and CSS are an ideal and flexible way to prototype"

They are _a_ way to prototype. And sure, they may be _more_ flexible than writing Objective-C. But they are far from ideal or even reasonably flexible.</comment>


Ask HN: Is making clones bad? - <AUTHOR> Just a few hours ago, a friend sent me a message that he was planning to make spanish or french clone of a famous site. He said there was a market for this since this kinda site didn't exist in French or Spanish.
I suggested to him that he shouldn't make a clone of some idea UNLESS he's going to OFFER something BETTER (if it does something better I wouldn't call it a 'clone').
Am I right in saying so? Or is there anything I'm missing? <comment><USER2> Err, localizing the site is already offering something better. I'd say go for it. Are you suggesting non-english people simply shouldn't have access to such a site because it already exists in english and the company chose not to build a localized version?

There's a huge market there ripe for the picking and many American companies aren't taking notice.

<comment><USER3> While you're offering something better, you're not offering a new actual feature or function, just a swap of the text. It's like adding an 'S' to someone else's big word in Scrabble. Yes, you get the points, but it's not nearly as satisfying as laying down your own word. It's a move of last resort: "I have nothing better I can do".

I'm not saying he shouldn't do it, but if I'm at a gathering and person A says "I built this new web-app that does cool new thing X" and person B says "I copied site B, only I changed the text to Spanish", it's pretty clear who I'm going to want to chat with.

<comment><USER4> I think it depends what you're after. Building something brand new is more interesting and challenging, but taking a proven design and introducing it to an untapped market has a higher probability of resulting in "something people use", for substantially less effort. So I disagree with the "I have nothing better I can do" sentiment.

<comment><USER3> Fair enough. It sounds like a smart business move, but a weak "hacker" move.

<comment><USER5> Someone once said this:

> That's the essence of a startup: having brilliant people do work that's > beneath them.... Think Einstein designing refrigerators.

The idea being that once you've made your pile, you can go on to do more interesting things, like novel startup generator startups, or writing your own toenail clippings and oatmeal language, or whatever else you fancy:-)

</comment></comment></comment></comment></comment><comment><USER6> "Bad artists copy. Great artists steal." -- Pablo Picasso.

I think as long as your friend is conscious what Picasso said in the quote above, it will be ok. Because the clone is just the starting point. There is market there but no product is available. So by cloning this product, he gets his foot out of the door and the rest of journey is up to him.

<comment><USER7> I've always heard that quote as "Good artists copy; great artists steal."

Any idea which is correct?

<comment><USER8> I've heard the "Good" version too. On Google it wins 35,000 against 2,660, which is closer than I'd expect. The Wikipedia page has it as "Good", but Unsourced.

</comment></comment></comment><comment><USER9> MercadoLibre.com started out as a latin american 'ebay clone'. They seem to be doing okay (== monopoly in their region); in fact, ebay now own a stake in them.

</comment><comment><USER10> he IS offering something better. Does the original site exist in French/Spanish? No. So he is doing something the original site isn't.

Frankly I don't mind clones at all. Its all about execution...if someone can clone you and take any marketshare...then you might want to look for another job

</comment><comment><USER11> I have mixed feelings here. On the one hand, from a market perspective I think, "Sure, why not. Just exploit the race condition that exists between The Next Big Thing in the US and those startups recognizing the European market."

On the other hand, as someone that cares about the health of the European startup scene, it doesn't set a good precedent that successful European startups tend to far too often just be knock-offs of American companies, and in fact the cycle feeds itself -- it's such now that European investors often want to see a "proven model", meaning a knock-off, which makes it harder for European startups to find funding when doing something riskier.

<comment><USER12> It's not all "America to Europe" you know ... there are startups in Europe that are innovating in ways the Americans haven't tried yet. Maybe not many of them, but my new business is based on one of them and it wasn't that hard to find.

The European company mine is modeled after is not doing well because they've made a fatal flaw in their implementation that's preventing their growth, and it seems their management doesn't recognize this, but other than this simple issue their business concept is sound, and when they eventually recognize this issue I'm sure they will do well.

But I'm American and I want to bring the same service to the USA so I'm proceeding with a slightly modified version -- one that will actually work well in the USA. I see nothing wrong with this whatsoever, it's a simple task of bringing a good service to places where the originator cannot or will not.

<comment><USER11> It's not that there aren't ideas coming from Europe to the US; it's rather that there's not a statistically significant number of American startups that are knock-offs of European ones. The converse isn't true. That there exist European copies of American companies doesn't bother me in the least; that they're probably half of the European startups does.

</comment></comment></comment><comment><USER13> I like to call the strategy "fast following" rather than "cloning." It made Bill Gates a billionaire.

</comment><comment><USER14> I think its fine. Look at even the current social networks in English itself.

Dating Sites ---> Friendster --> hi5 --> Facebook --> Orkut

                                                   --> Bebo

                                                   --> WAYN

                                                --> LinkedIn

They all started with the same base, a database of people that interact.

Again, the App development platform was started by facebook and now everyone else copied it. So, once you clone it you can always give it your own unique flavor with time.

</comment><comment><USER15> Amazon expanded into Europe by buying up it's 'clones' in other languages, so this might work out well.

Facebook chose to translate and expand by itself instead of purchasing local clones.

I guess the difference is amazon was buying shipping and warehousing.

<comment><USER16> Amazon had physical assets it needed to acquire, at best Facebook needs a data center, however a 'clone' is unlikely to have one worth the money.

<comment><USER15> Exactly. Buying a facebook clone would be for the user base.

<comment><USER17> StudiVZ had an exit - just not to Facebook. There are many exits as long as you have users.

<comment><USER15> I didn't know StudiVZ had made an exit, thanks for pointing that out. To a publishing company too, very forward thinking.

</comment></comment></comment></comment></comment><comment><USER18> I actually hacked up a clone of HN because I thought it would be nice with a hn-like site for "normal" news in Danish and there aren't any. I don't feel bad about it in any way because it doesn't infringe or subtract from HN since it's a totally different crowd.

If you want you can check it out here: <http://www.deloghersk.dk> (still has a few bugs...)

<comment><USER19> Well, HN is just a clone of Reddit. And Reddit is just an improved Digg. When someone makes a clone of yours, then you'll know you've hit it big!

</comment></comment><comment><USER20> I think that making clones is a great idea. My current project is making a reddit clone on top of Django. I'm planning on setting up social news sites focused on niche markets.

I know that there's already sub-reddits, Digg, etc.. but I'm pretty convinced that your average person in Peoria/Des Moines/Kansas City isn't going to get past the first page of reddit or Digg without running away screaming because of the trolls.

Think about it this way. How many web forums are out there that are devoted to niche markets? How many magazines are there? How many local newspapers are there? How many sitcoms are there? How many movies are there? The web is media.

There's nothing wrong with taking a format or platform, and targeting it at a niche market. You don't have to reinvent the wheel every time you make a consumer facing web application.

The problem of "What do people want" has already been solved repeatedly. As long as you're not infringing on IP, if you can take an idea and focus it on a specific market, you're one step closer to making money.

<comment><USER6> Not a bad idea! But reddit is pretty bad in dealing with trollers in non programming subreddit.

But I like the newmogul when nickb released it. The feeling is very natural but each focuses on its own subject.

</comment></comment><comment><USER21> I can guarantee that the site he will clone is an actual clone of another site.

Everything you see today is a clone of something else and they simply change the theme, the message, this or that.

True innovation looks too dumb to be copied.

</comment><comment><USER22> I often find myself wishing for variations of popular sites and services since often I can find one that does what I want, but fits me better.

For example, when I was recently looking for some good bug-tracking software I used FogBugz as a trial and really liked it, but they're pricing was really ridiculous for my use case. They would charge $20 per user per month for whoever uses the site. That will work great for other folks who have a static team, but I work with a revolving pool of outsourcers. So for me, it would cost an extra $20 for a outsourcer of mine to perform a $10 task that month and use the bug tracking system. Great software, but their pricing model was a bad fit for me.

So, I started looking at other bug tracking software sites and found some that I'd never heard of, but that looked promising. I eventually settled on Unfuddle since it allowed me to have a revolving pool of users and not be penalized for it in the pricing. I tried Lighthouse and a few others, but there were slight variations in their functionality that didn't make them an ideal fit. Of course, those aren't exactly 'clones', but they duplicate significant portions of functionality and vary in small ways that can be significant for a user like me (i.e. pricing structure).

So, I'm all for clones - bring 'em on. It keeps the established guys on their toes and innovating and gives users slight variations to choose from.

It's basically slight genetic variation and natural selection in business.

P.S. The only time it really seems wrong to clone is when the site's text is copied too closely - or if the visual design is too similar.

P.S.S Also, if the site being cloned is super unique and pushing the realm of some new functionality, it seems bad form if clones don't at least acknowledge and give credit to the original site for their inspiration.

</comment><comment><USER23> I think part of the problem with cloning a website is the motivation. Feeling that you're just cloning a succesful website without adding your own touch is just not as motivating (at least for me).

I'm a bit in this situation currently since I had an idea for a product that I really wanted to do, but by the time I quit my job to work on it, someone else had the same idea and implemented it for the american market... So, I let the idea by the wayside for a while but recently I decided to implement it for another market... So in a way I'm cloning someone's website (same base idea) without cloning since I originally wanted to do exactly such a website...

</comment><comment><USER24> It depends on what he means by cloning. Speaking from an Indian perspective, there is a horde of vanilla Indian social networking sites which are just floundering. On the other hand, there is bazee.com, an ebay equivalent which was bought by ebay and is now known as ebay.in. There are other startups similar to US ones in travel, mobile payments and so on, which are doing pretty well.

I guess it's not just about localization in terms of language but also about making related offline services available, which is sometimes not feasible for the original site(s) to do all over the world, at least fast enough.

</comment><comment><USER25> Bad? No. Cloning idea is actually good thing. We need multiple choices. Doing better is also not a necessary thing. I say doing different.

<comment><USER26> But only cloning doesn't bring multiple choices. You have to bring innovation to create a difference.

</comment></comment><comment><USER27> For an exact clone, it's pretty lame. And even worse, because the cloning process doesn't teach you any of the reasons the product is like that, when you DO need to diverge, you won't have learned anything.

It used to really upset me as the creator, as well. But then I realized they don't really have what it takes to be successful, anyway.

</comment><comment><USER28> I think there is a good market for cloning site.

But I agree with you though, that if it's literally cloning, it's not great... and some people will notice anyway and that would give you a bad image.

Overall though, I don't think there is anything bad about it. That means you start with a proven idea. We all know execution will make the difference anyway.

</comment><comment><USER29> "Imitation is the sincerest of flattery." --Charles Caleb Colton

</comment><comment><USER30> Awe. I thought this would be a philosophical discussion about the merits of human cloning.

<comment><USER19> It's so easy to make people naturally that it would be pointless to make more than a few clones, just to prove it can be done. The same applies to apps. If you are looking for a programming or design exercise and can't think of anything original, rewrite an app you like.

<comment><USER30> Mm, consider what it would be like to not be forced to wait for a heart transplant. At that point, you could grow your own.

Of course, that would be quite controversial.

<comment><USER19> Well, I think it would be less controversial to grow organs in pigs or just on their own. If you grow an actual human, he will probably want a say in the matter.

</comment></comment></comment></comment><comment><USER31> it's a good idea as practice. Otherwise, if you or your friend are planning to make it a major business, don't, because of legal repercussions when it will be popular</comment>


Knuth - "The Art of Computer Programming" in a year or two - <AUTHOR> http://blog.mitemitreski.com/2011/04/knuth-in-year-or-two-and-more.html

<comment><USER2> I'm failing to see how this is at all interesting...</comment>


Ask HN: Do we need a favorite button? - <AUTHOR>

When a story is submitted to Hacker News, we can respond to it by:
1. Ignoring it. 2. Upvoting. 3. Commenting (which I won't get into)
When you up vote a link, clearly you like it. As such, it shows up in your 'saved' category. Every single story I upvoted is there.
My problem is that sometimes I come across a story that I absolutely know I want to save for later. Other times, I just like the story now and am upvoting.
Sometimes, when I want to get a story that I knew I upvoted or read a long time ago, I will go back and look for it. That's a long and painful process though. I have hundreds of stories I upvoted.
What about a 'favorite' button? Or a 'save' button? A link that lets me save a particular story in a specific category reserved for just the stories I know I want to actually keep. Let me know what you think. <comment><USER2> I don't feel the need myself, because the "really really good" ones I share out to Google Reader (one click via the lovely shareaholic Firefox extension), which reduces the pool to search from (and of course is easier to search). And I could star it there, if I needed.

Of course that is not an HN-only solution, but that is an advantage (months later I don't necessarily remember where I encountered a story).

YMMV, of course.

<comment><AUTHOR> I get that and I can send those out to, but I was looking for a solution to keep those within my HN ecosystem</comment></comment>


Google Acquires VirusTotal - <AUTHOR> http://blog.virustotal.com/2012/09/an-update-from-virustotal.html

<comment><USER2> Just don't make me use a Google account instead of a VT API key and I'll be happy.

</comment><comment><USER3> Is it weird that I read the title as, "Google Acquihires VirusTotal"?

edit: no disrespect to the VT team. Congrats to them!</comment>


Use a relational database instead of NoSQL for your IoT app - <AUTHOR> https://blog.timescale.com/use-relational-database-instead-of-nosql-for-iot-application/ <comment><USER2> I disagree pretty strongly. They talk about having a semi structured schema for sql and specifically call out IoT but those perfectly describe nosqls bread and butter. Dynamodb for example is best used when you model your data up front and define your usage patterns and handles the scale needed when you have thousands of IoT devices. SQL is not scalable enough. If I want to run complex queries then I'll run an event based sync to Athena or another data warehouse and run them there but still be free to scale my oltp use case

</comment><comment><USER3> and what would be the story if suddenly data stops fitting single node database?..

<comment><USER4> The common solution is to, you know, not fill your database. Old data should be archived whenever possible.

If you really need to keep around more data than can fit in a single server, the PostgreSQL wiki has some documentation to that effect [1], with PostgreSQL-XL [2] and Citus [3] being specific examples of systems which can shard a Postgres database across multiple nodes.

A more DIY alternative to the above is to leverage PostgreSQL's support for foreign data wrappers [4] to include results from other servers. The cool thing about this approach is that the other servers don't even have to be PostgreSQL servers; hell, they don't even have to be _SQL_ , nor do they even have to be _servers_.

The great thing about most/all of these solutions is that you don't have to worry about them upfront; you can roll them out when you're closer to actually hitting practical/theoretical limits. No need to prematurely optimize :)

[1]: [https://wiki.postgresql.org/wiki/Replication,_Clustering,_an...](https://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling)

[2]: [https://www.postgres-xl.org/overview/](https://www.postgres- xl.org/overview/)

[3]: [https://www.citusdata.com/product/community#scale- out](https://www.citusdata.com/product/community#scale-out)

[4]: [https://wiki.postgresql.org/wiki/Foreign_data_wrappers](https://wiki.postgresql.org/wiki/Foreign_data_wrappers)

<comment><USER3> All those solutions have much more complexity than adapting NoSQL/NewSQL solution from the beginning, which supposed to provide much easier scale out story. Also FDW is probably limited in terms of transaction support and push down predicates.

<comment><USER4> Right, but even with the added complexity (not _that_ much for something like Postgres-XL), you still end up with all the benefits of a robust and performant relational database.

Meanwhile, for the FDW-based DIY approach, it should be at least theoretically (if not practically) possible to support both transactions and predicate pushdowns, especially if the foreign database is another Postgres database (or SQL at all, for that matter).

More to the point, though: the idea is that you shouldn't _have_ to prematurely optimize. The vast majority of websites don't need a full-blown distributed database. In the rare event that your site grows to that point, it ain't really all that difficult to switch to Postgres-XL or CockroachDB or something that gets you the best of both worlds.</comment></comment></comment></comment>


Replace suicide as a verb – Issue #3721 – Node.js/node - <AUTHOR> https://github.com/nodejs/node/issues/3721 <comment><USER2>
        "Furthermore, I'd like to +1 the idea of sanctioning
        individuals who feel the need to contribute
        disruptive/harmful comments to this thread."

I'm all in favor for squelching users that are intentionally disruptive/harmful, but the users at whom that comment was directed did not do anything worth being sanctioned. Honestly, the NodeJS community has completely jumped the shark.

This reminds me of this SMBC cartoon about the difference between "offended" and "offensive".

[http://www.smbc-comics.com/index.php?db=comics&id=2164](http://www.smbc- comics.com/index.php?db=comics&id=2164)

Some of the examples don't even make sense: \- mount is not an exclusively sexual term. For example, "a jockey mounts a horse" \- the origin of the finger protocol comes from the idea of "snitching" on someone and has absolutely nothing to do with sex. \- the touch command updates mtime (or creates a file if it doesn't exist) and its origin is from "touching something last"

The most ironic thing in all this is that the causes are being championed by people who are very clearly neurotypical and completely ignorant to the cognitive diversity that has pretty much always existed in the field of computing that includes individuals who either don't feel offense or are oblivious to what might offend. Honestly, the NodeJS is becoming a less safe space for people on the aspie/autistic end of spectrum, lest they be attacked by a mob of people who wants to sanction them for word choices that they are insensitive to (i.e. completely unaware).

[https://medium.com/@maradydd/when-nerds- collide-31895b01e68c](https://medium.com/@maradydd/when-nerds- collide-31895b01e68c)

<comment><USER2> I think Linus' "acting professional" rant is pertinent here: [https://marc.info/?l=linux- kernel&m=137392506516022&w=2](https://marc.info/?l=linux- kernel&m=137392506516022&w=2)

In particular, this point, 'So as far as I'm concerned, the discussion is about "how to work together DESPITE people being different".'

</comment></comment><comment><USER3> > I think that this verb is particularly meaningful in that a member of our > community killed himself not that long ago and those of us that were close > to him would rather not be reminded of it every time we use this API.

Everybody deals with tragedies, they're a part of life. Being an adult means facing those tragedies and accepting them. It's not easy, and some tragedies are just too much for someone to fully accept and move on from, but there should never be any reasonable expectation that the world should change to accommodate them.

</comment><comment><USER4> I'm in favor of changing it. Both for the sentiment involved, and because the title says it all: "Replace suicide as a verb". You shouldn't name boolean state variables after verbs. Verbs are for methods and functions. Not really sure that `voluntaryExit` is better, though.

</comment><comment><USER5> Do other fields, such as biology, have problems like this? Do people in biology every beat around the bush rather than say things like "programmed cell death"?

<comment><USER6> People with Peter Pan syndrome don't usually end up working in grown-up fields.

</comment></comment><comment><USER7> I suffer from pathological Ailurophobia and UNIX triggers panic attacks. Please fix this to ensure my comfort.

<comment><USER8> What does UNIX have to do with cats (or do you mean the `cat` utility)?

Anyway, while it's easy to snark at this, that doesn't seem particularly worthwhile. As, for example, [https://github.com/nodejs/node/issues/3721#issuecomment-1552...](https://github.com/nodejs/node/issues/3721#issuecomment-155227232) shows, it's perfectly possible to disapprove of this idea and to explain why civilly.

<comment><USER9> Semantics: snark provides no value, where satire illuminates it. The above is satire.

</comment></comment></comment><comment><USER10> Do people realize that euphemisms do not change the meaning of something? `voluntaryExit`? What do they think _suicide_ actually is? Oh well, at least it provides relevant context to shoehorn Carlin in. [0] [1]

It amazes me so many people are willing to receive their sticks from the stick people.

[0] [https://www.youtube.com/watch?v=vuEQixrBKCc](https://www.youtube.com/watch?v=vuEQixrBKCc)

[1] [https://www.youtube.com/watch?v=NXWBvB4U-cA](https://www.youtube.com/watch?v=NXWBvB4U-cA)

<comment><USER2> It reminds me of the way certain clinical terms entered the vernacular like idiot, retard and moron. IIRC, all were clinical terms before they became insults. I could see "voluntarily exited" being used to describe a suicide.

</comment></comment><comment><USER6> > Sadly, the whole unix process model is overridden with terminology related > to violence and slavery... :disappointed:

> Don't forget the sexual overtones: mount, touch, finger...

These people are actually serious, aren't they?

<comment><USER8> I'm _pretty_ sure that second one is a joke.

<comment><USER2> Given that it's from the same user that started the discussion, I'm almost certain that it's not a joke. I look at this and I think "Infantilize all the things!"</comment></comment></comment>