Mysterious Detour While Driving? It Could Be Due to the Curvature of the Earth - <AUTHOR> http://www.travelandleisure.com/articles/gerco-de-ruijter-grid-corrections-highways-driving-wichita <comment><USER2> I work on vehicle routing. I've seen mysterious detours that ended up being cause by using an imprecise segment length equation.

Because the earth isn't a sphere, the common length-on-a-sphere great circle distance equation isn't perfect for the earth. However, it's a lot faster to calculate than the haversine length, which takes into account the squashed sphere that we live on.

We were calculating driving routes at high latitudes. The difference in the length calculation meant that east-west road lengths were being calculated as slightly longer than they really were.

Amortized across a long-distance route, this led to the mysterious tendency of the shortest-path algorithm to prefer north-south oriented roads a lot more often than you'd expect.

While we knew we were using the less precise great-circle distance, the deviation is not all that big, so we didn't really expect the difference to manifest in the output.

 _Those_ were some mysterious detours.

<comment><USER3> wow, thanks for sharing that story.

</comment></comment><comment><USER4> I bet there's a number of grid corrections due to historical subdivision, not cartography.

The first land developers like George Calvert and William Penn and more going westward had large tracts of land to subdivide into smaller and smaller units but they didn't all make the same choices. Eventually roads within needed to meet and corrections made.

In the East, almost every town has a "County Line Road" and more times than not, it's crooked and met with a number of dogleg corrections.

<comment><USER5> It should be easy to identify those that are due to curvature, though. My understanding is that states parceled according to the PLSS have fairly consistent township and section divisions, made using a system that takes the earth's curvature into account in a systematic way. This method introduces "corrections" like those in the article at regular, predictable intervals.

This is described in the second and third paragraphs of "Survey Design" here: [https://en.wikipedia.org/wiki/Public_Land_Survey_System#Surv...](https://en.wikipedia.org/wiki/Public_Land_Survey_System#Survey_design)

</comment></comment><comment><USER6> Growing up in rural Ontario, I've seen plenty of these, but I was always given a different explanation for it: chains stretching.

The idea was that these concessions were laid out via teams with two sets of horses pulling a chain directly west, then when the chain was fully stretched, putting down a post to mark the point at which the concession ended, tying the chain to it, and pulling the other end ahead until it ran out again.

This worked, but if team A has the old chain, and team B has the new chain, team A will keep being a few inches and then feet ahead of team B, who are working a few miles to the south, because the chain started to stretch over time.

In hindsight, I realize now that I have no idea if any of this is even remotely true, but it was a plausible explanation that I'd heard from a couple of sources.

</comment><comment><USER7> Isn't using the right projection for a certain geography a solved problem in cartography? This article seems like it's saying: "Here's a common problem for mapmakers that you didn't know!"

<comment><USER8> It is a known problem, but not a solved problem, in that there does not appear to be 1 best way to map a 3d surface onto a 2d map and vice-versa. There are numerous approximations, but which one to use is an art and not a science.

</comment></comment><comment><USER9> Couldn't this also be solved by simply making the plots of land without right angled corners? I'm guessing there is a simple tiling solution that would solve the problem without requiring detours.

<comment><USER10> Not while satisfying the requirement that each piece of land be six miles square, with the boundaries running north-south and east-west. In fact that's impossible to do for a single piece of land that does not straddle the equator.

One solution would have been to make each parcel of land 36 square miles, with the parcels getting taller and narrower further north.

<comment><USER9> If the boundaries are running magnetic north-south, then there is no way to make the property square. I'm sure there is a good reason to survey the lands as squares, rather than as trapezoids with the north/south borders running along the lines of longitude - just not sure what it is right now.

The farmer wouldn't care - they would simply survey their property based on the property stakes - and, at 6 miles, their property corners would be close enough to right-angles they probably wouldn't notice, and certainly wouldn't care.

And roads could then run all the way to the north pole, or from coast to coast, without having to detour (mountains, lakes, cities, rivers and other obstacles excepted).

</comment></comment></comment><comment><USER11> Mysteriously missing from this: discussion of influential land owners, party hacks in some cases, who succeeded in steering routes around their plots.</comment>


They Found You: Ad firm uses 2 Billion Data Pts to Track You Across Devices - <AUTHOR> http://paidcontent.org/2013/03/08/they-found-you-ad-firm-uses-2-billion-data-points-to-track-consumers-across-devices/

<comment><USER2> Two billion variables and possibly millions of labels. I'd be interested in knowing what machine-learning algorithm they're using.</comment>


The Bitcoin hash rate has increased by 28.2% over the last month - <AUTHOR> https://kaiko.com/statistics/hash-rate <comment><USER2> Doing some back of the envelope calculations..

Hash rate is about 1,200 PH now. The most efficient ASIC miner today is the AntMiner S7 [1], which does 4.86 TH at 1.21 KW. This gives us a power consumption of the entire Bitcoin network of at least 300 MW. Actual power will easily be double that, given that not everybody is using the latest miner. So let's say total power consumption is about 600 MW. This is the output of a small power plant.

[1] [https://www.bitcoinmining.com/bitcoin-mining- hardware/](https://www.bitcoinmining.com/bitcoin-mining-hardware/)

<comment><USER3> Every hour 25 bitcoins are mined, at a current value of $450, that's $11250. So if the total power expenditure of bitcoin hashing is 600MW, it would have to cost less than $11250/600 = $18.75/MWH for electricity to not mine at a loss, which is insanely cheap.

Therefore the hashing chips must be considerably more efficient than the latest commercially available products. I think the major players get hashing chips manufactured at scale on smaller nodes for significant power savings.

<comment><USER4> Actually, the present value is the consideration of the future value of the return: PV = FV / (1+r)^n. Anyone who is bit mining now is willing to do it at discount on the assumption the coins will have greater value in the future. I'm not surprised at all that it's being mined below cost.

</comment></comment></comment><comment><USER5> What's newsworthy about this?

First of all, 28% could almost entirely be attributed to noise.

Second, the fastest hash rate increase recently observed occurred between Nov 2015 and Feb 2016, not during the last month.

<comment><AUTHOR> Sure, but you cant deny the trend over the last month. This is a funny timing to see the hash rate increase, i.e. more miner joining in, when the halving is 3 only months away

<comment><USER6> It's just the latest batch of mining hardware coming online (which is more efficient per watt than the previous generation). Design and manufacturing is highly bursty on Bitcoin difficulty increase time scales.

</comment></comment></comment><comment><USER7> It would be interesting to know total sales of the leading mining hardware, and who the customers were.

</comment><comment><USER3> Not really, going by the graph linked it increased from 1.2 to 1.3 Petahases/sec from a month ago to today, which is not 28.2%

</comment><comment><USER8> Sorry for a silly question, but can someone explain for does it mean?

<comment><USER9> More electricity is being burned to do the same amount of work.

I know that sounds snarky, but it's how proof-of-work systems like bitcoin work: "miners" all attempt to generate a specific hash which just means lots and lots of computation. The number of transactions per second the bitcoin protocol can handle is essentially capped and completely unrelated to hash rate as the difficulty of producing a correct hash is adjusted based on the hash rate.

<comment><USER10> And still no discussion on the value of pissing away our planets energy reserves, just to create imaginary points in a paranoid game. In one view, _all the electricity_ burned to make bitcoins is a crime against the planet.

<comment><USER11> I think it's a worse crime to say that because you have access to a stable, relatively apolitical currency, that no one else needs one.

Bitcoin could be hugely beneficial for fledgling financial systems, and robust financial systems can be hugely beneficial for billions of people.

Our energy crisis was not created by, and will not be solved by, Bitcoin. Numerous monetary crises could be addressed in serious ways by it, though.

<comment><USER12> > Numerous monetary crises could be addressed in serious ways by it, though.

That may be true, however, every time we've replaced one currency with another there have been unforeseen consequences decades or centuries later.

One dead-simple example: A bitcoin can be divided down to 8 decimal places and there is a limited supply. It is deflationary. No, that _isn 't_ a good thing (ignoring short-term greed). What happens when we either mine all the bitcoins, or mining more becomes computationally impossible? How do you run a business when the minimum possible amount of currency increases by $1 every day? You have a piece of bread worth $3, but the minimum amount someone can give you is $5 (then $6, then $7). Suddenly this deflationary currency that was supposed to fix everything has resulted in global _hyperinflation._

"So we'll just switch to a new system at that point." We can't get countries to drive on the same side of the road, use the same measurement system or even upgrade to IPv6. How on earth are you going to roll out a global currency change overnight? Bitcoin stakeholders can't even agree on much smaller changes at the moment.

Call it a commodity, sure. It is not a viable long-term _currency._

<comment><USER13> You can easily add more decimals with a soft fork, or with a sidechain.

<comment><USER12> See: second-to-last paragraph.

<comment><USER13> What change that's less significant than allowing individual satoshis to be further divided has been refused as a soft fork? (Bigger blocks is far more significant.)

You don't even need a fork, you can just use off chain middlemen that add extra units, or if it's done as a sidechain then no agreement is needed and it's all on chain.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> [http://bitfury.com/products#16nm-asic](http://bitfury.com/products#16nm-asic)

</comment><comment><USER15> Slow tech news day? I guess the craptocurrency speculators need periodically "news" like this to dump their bitcoins and buy them cheaper next week.</comment>


What's the Secret Success of Mint.com? The Real Numbers... - <AUTHOR> http://www.christine.net/2009/10/whats-the-secret-success-of-mintcom-the-real-numbers-behind-aaron-patzers-growth-strategy.html

<comment><USER2> I'm pretty blown away at the $30-50k for the first engineering hires. I assume they are either:

A) getting LOTS of equity B) really naive about equity

Are any of the startups here paying their first hires in this range? If so, what kind of equity package are they getting?

<comment><USER3> We're starting a new company, hiring 2 developers and paying ~$50k, ~2-4% equity (4yr vesting), and providing health/dental via AdminiStaff. However, we're based in Austin so that's closer to ~$70-80k along west coast. As founder, I'll be taking a salary around ~$30k unless we receive our full ask.

I suppose it's also worth clarifying that this is an angel round to build the prototype, 9-12 month runway. Salaries will go up if all goes well of course.

<comment><USER4> AminiStaff -- thumbs up or thumbs down? Can you share what you're paying on health/dental per employee? Thanks for the info.

<comment><USER3> I can not share because I don't exactly know, at least not yet because we're still finalizing the last details. I want to say it's about $12k +/- 2k per year per employee. We're getting grandfathered in because our investor currently has a startup using their services. It's my understanding AdminiStaff doesn't support companies under 10 employees.

At the previous startup I was involved with as a normal employee, we used AdminiStaff and I thought it was pretty nice. It saves a ton of headache/time, and they keep you in check with all the employment laws, etc. I thought the health/dental coverage was really good too; I picked United but you get a few options to select from. I've been told AdminiStaff can get great coverage for a lot cheaper because of their size, but I'm sure you'll pay a premium overall vs. doing all the HR work yourself.

One thing I did like is after the startup failed, I was able to access all of my employment records for the IRS without having to jump through the invisible hoop of locating our former office manager (who we fired many months before the company closed).

So thumbs up from my experience thus far, I'm sure you can google around and find complaints though. Hope that helps.

<comment><USER4> Thanks!

</comment></comment></comment></comment></comment><comment><USER5> > "$100K from friends and family"

shoot and dang.

<comment><USER6> He went to Princeton, so I'm thinking he had some cash among his friends and family.

<comment><USER7> Would anyone have a problem raising 100k from friends and family, knowing that in 12 months if you were unable to raise a series A, you would be forced to tell them that they had little chance of seeing their money again?

<comment><USER6> If I get 10k from one friend who has a million, 50k from another who has 5 million and maybe several 1k investments from others, it would be less painful if things fell through. One would have to be rather up-front about the incredible risk involved and have a huge amount of trust with many parties beforehand.

<comment><USER8> Can I meet your friends? My friends and family couldn't loan me $1000.

<comment><USER6> All friends listed were hypothetical. I _might_ be able to get 10k from my closest friends and family. :-)

</comment></comment></comment></comment></comment></comment><comment><USER9> This is a great article, but keep in mind that the numbers are illustrative of one type of company. Mint was dealing with financial information, so they had to get "serious" fast and that means spending on things that, say, a Facebook or Twitter would not have had to spend. They project $30/per user for user acquisition (if I read that right), which again is very different for different kinds of companies, and different business models. Extremely high value niche companies would pay hundreds of dollars per user. On the other side Twitter being a mass player, would spend far, far less. Financial sites are valuable, so $30 seems like a good deal.

<comment><USER10> Typically you don't refer to acquisition cost in terms of $/user/year. The $30 was referring to revenue/user/year. That doesn't preclude your point that they had to approach user acquisition much differently than Twitter or Facebook.

<comment><USER11> I believe Aaron is on the record saying that Mint never purchased traditional advertising, instead they relied on pr/word of mouth.

</comment></comment></comment><comment><USER12> The legal fees are kind of astounding. $10-50K/month in legal fees for a 30 person company? We spend _maybe_ $2.5-5k/year on legal fees for our three person company after the initial $20k operating agreement/TOS/PP/copyright. The $10-50k/m figure seems a bit outrageous to me. Can someone with more experience than me explain that in more detail?

<comment><USER13> I suspect it has to do with the financial nature of the startup.

<comment><USER12> Yeah, you're probably right. I'm guessing the legal nature of having access to everyone's bank account is a tricky situation. But usually once you've outlined (legally) how you're going to approach something there isn't a monthly cost associated to that legal work.

<comment><USER14> "But usually once you've outlined (legally) how you're going to approach something there isn't a monthly cost associated to that legal work."

Oh how I wish that were true for everything :(

Ph0rque is right, though. Unfortunately, if you're dealing with money (payment processing, financial services/PFMs, large-scale real estate, investment management, etc.) then you basically must have a law firm on retainer to deal with all of the changing legislation, certification guidelines, compliance programs, patents, general disputes, etc. etc. Stuff is constantly in flux and the lawyer work is almost never-ending. Especially right now while the US market is in the economic scramble, blame-game mode. This stuff isn't like writing a basic TOS and being done. I'd actually be very surprised that Mint's legal fees were that _low_ , except for the fact that Yodlee handled all the backend work for them. I would absolutely _love_ to get off that cheap...we pay a _multiple_ of what is quoted here. For each of several financial service companies.

I've heard several entrepreneurs say they intend to fill the vacuum created by Mint (by building another anti-Quicken PFM.) My firm has gotten pitches from half a dozen teams already, and we're not even actively seeking investments right now. The relatively small Mint exit seems to have chummed the waters and everyone is probably going to blow out a bunch of money and drown each other like usually happens in these little entrepreneurial frenzy pockets. I'm normally all for the little guy, but if people think this is an easy market to enter _now_ without buckets of cash and industry experience, then they're idiots. For some (most?) industries, being an outsider gives you a new perspective because you don't know what can't be done. Financial industries, however, you need both the cash and the experience or else you may end up in jail.

</comment></comment></comment></comment><comment><USER15> I wonder if they use mint.com to track their startup expenses :o

<comment><USER16> Eating what you cook -- a great way to know what's wrong with the food.

</comment></comment><comment><USER17> That woman is so freaking beautiful I can't concentrate on the article. I had to firebug/edit html her picture out so I could get it done.

After reading it: It was a nice look into the strategy/numbers but I am not sure I can take anything away from it. Like (pretty much) everyone else here being a programmer/developer - I do not see raising $100k for my prototype as feasible for me.

<comment><USER18> um, wow and thanks?! yer makin me blush. :)

<comment><USER17> You're welcome!</comment></comment></comment>


SSL fix flags forged certificates before they're accepted by browsers - <AUTHOR> http://arstechnica.com/security/2012/05/ssl-fix-flags-forged-certificates-before-theyre-accepted-by-browsers/

<comment><USER2> The actual Internet-Draft: <http://tack.io/draft.html>

Unlike Ars, this has the information you need. Each server that implements this TACK draft has a TACK key at any given time, as well as their usual TLS key. Conforming clients get sorta-ssh-like key security:

"3.2. Pin life cycle

A TACK client maintains a store of pins for verifying TLS connections. Pins associate a hostname and a TACK key. When a client sees a new hostname and TACK key combination, an inactive pin is created. Every subsequent time the client sees the same pin, the pin is "activated" for a period equal to the timespan between the first time the pin was seen and the most recent time, up to a maximum period of 30 days."</comment>


Vidpresso (YC W14) Offers Low-Cost Tools for Adding Tweets and Ads to Broadcasts - <AUTHOR> http://techcrunch.com/2014/03/03/vidpresso-ads/

<comment><AUTHOR> Our hacker news story is crazy too. Back when I posted this:

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

Our life looked a lot different. It's insane how much can change in a few weeks. We've also found some really good folks as references from HN... so if you're into video and like coding... we should be friends! :)

More on our mission here:

[http://vidpresso.com/blog/secret-vidpresso-master- plan](http://vidpresso.com/blog/secret-vidpresso-master-plan)

</comment><comment><USER2> Interesting. I had thought about making a tool for adding real-time annotations and real-time 'directing' (for lack of a better term) for things like parents filming kids' sporting events (so they could do multiple angles with a couple iPhones and make it all "professional" with names/numbers coming up on the screen), but this seems like a better idea haha.

<comment><USER3> Check out "CollabraCam", see [http://collabracam.com/](http://collabracam.com/)

See also "VizzyWig", at [http://vizzywig.com/](http://vizzywig.com/)

</comment></comment><comment><USER4> Got a chance to meet Randall at the YC interviews. Great guy. Congrats and good luck!

</comment><comment><USER5> This is superb.

Congrats Randall :)</comment>


As Crypto Market Sheds Billions, One Analyst Sees Buying Opportunity - <AUTHOR> https://www.coindesk.com/crypto-market-sheds-billions-one-analyst-sees-buying-opportunity/ <comment><USER2> The total value of all cryptocurrencies has dropped 11 percent since Saturday, declining from a high of nearly $180 billion to under $160 billion today.

<comment><AUTHOR> But that might not be cause for alarm. In fact, Ronnie Moas, the founder of Standpoint Research (known for his prediction that the cryptocurrency asset class will one day be valued in the trillions), contends that the price break is rather the work of larger traders who want to build up even bigger positions in cryptocurrency.</comment></comment>


Hash Tables in JavaScript - <AUTHOR> http://www.mojavelinux.com/articles/javascript_hashes.html

<comment><USER2> A couple of notes, since this article appears quite dated.

        var hash = Object.create(null)

creates an object free of inherited properties, this obviates most of the need for a wrapper class for the "I just want an associative array" case.

For the "keys", "values", and "each" methods

In modern JS one could simply call

        Object.keys(hash)

        Object.keys(hash).map(function(key) { return hash[key] })

        Object.keys(hash).forEach(function(key) { fn(key, hash[key]) })

respectively.

Or as the article suggests, simply use a library like Lodash for this kind of general purpose iteration.

</comment><comment><USER3> The article does not implement a hash table, it just is a wrapper around javascript objects that keeps count of the number of properties. The example code is buggy (it leaks `previous` to global scope) and not particularly elegant. I would not bother with trying to use something like this.

</comment><comment><USER4> If you don't mind pulling in the other stuff, Google Closure has provided a Map (hash map/hash table) implementation for a while. You can use the Closure Compiler or ClosureBuilder to ensure you only serve the necessary Closure modules.

[https://closure-library.googlecode.com/git- history/docs/clas...](https://closure-library.googlecode.com/git- history/docs/class_goog_structs_Map.html)

[https://developers.google.com/closure/library/docs/closurebu...](https://developers.google.com/closure/library/docs/closurebuilder)

</comment><comment><USER5> ... Yikes. The advice in this post is unfortunately naive. It's dangerous to allow arbitrary object attribute key content. Some object properties in JavaScript must be treated as reserved. Allowing arbitrary access to key names has unexpected repercussions. For example, consider "prototype" or "hasOwnProperty" as key names.

See: [http://www.devthought.com/2012/01/18/an-object-is-not-a- hash...](http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/) for more details.

So I'd +1 jestar_jokin's advice: use code that's been well-tested. The code presented in the original poster's "Hash Tables in Javascript" article does not look robust.</comment>


Android recording all your moments on Google Map - <AUTHOR> https://maps.google.com/locationhistory/b/1/dashboard <comment><USER2> Of course it is, because I opted in when it asked if I wanted to be tracked. Google also sends me an email once a month to remind me I chose to be tracked.

<comment><USER3> How do they think Google Now and all those other lovely services work? New news? I think not, move along.

<comment><USER4> Yeah - imagine apple did this - there would be a scandal. But this is Google, so 'move along'.

<comment><USER3> While I agree with the sentiments of what you are saying but the 'move along' has nothing to do with it being Google. This has been known by everybody for a long time and discussed here on HN. All the 'article' shows is that there are some tools to see that info has been collected.

There is no point in flogging a dead horse. So yeah, move along.

<comment><USER4> Fair enough.

</comment></comment></comment></comment></comment><comment><USER5> My life as a consultant confuses the heck out of Google Location History/ Now/ Maps.

Hotels are identified as my home address, client sites as work... come to think of it, maybe Google's right in the end and my perception of having a flat that's my home is off. ;)

</comment><comment><USER6> I've always found this one of the most fantastic services on the internet. It's a pity more people don't know about it.

The only problem I've found is that the labelling gets confused by the fact I work from home, but do a school-drop-off commute in the morning.

</comment><comment><USER7> And fiendishly hiding it via a public URL, email reminders and blog posts!

</comment><comment><USER8> Yes, this is a service they provide. I get regular emails telling me what I opt into, and how to opt out of it.

</comment><comment><USER7> Found a bug!

I travelled a few miles away from home yesterday and it's recorded as superfast visits between home and various parts of the journey in a star shape.

The Android tablet that I left at home is confusing Google into recording some weird split journey where I am both at home and travelling...

<comment><USER9> Yes, I had that problem too :-) You really should disable tracking on stationary devices like tablets that are mostly at home. Your phone probably represents your location faithfully.

<comment><USER7> Except it's not always stationary and I don't want to think about settings such as that.

Better to fix the algorithm, methinks.

</comment></comment></comment><comment><USER10> I can now conclude that I didn't loose my phone last Saturday... it was stolen.

Last seen speeding towards a part of the city with a bad reputation.

</comment><comment><USER11> "Google Location History is not yet enabled for your Google Account. Please enable Location History and check back in a few days to allow for enough location history to be collected."

</comment><comment><USER12> You can disable it, see [https://maps.google.com/locationhistory/b/1/settings](https://maps.google.com/locationhistory/b/1/settings)

<comment><USER13> Alternatively, from an Android device: Google Settings app -> Location -> Uncheck "Location Reporting"

</comment></comment><comment><USER14> What gave me creeps wasn't service or collected data. It was the fact that I am using iPhone for several weeks now. I dont use phone (apps) while commuting since I'm at the wheel. Only app I am using, is Waze, but I believe that their data is not being shared with Google yet. But somehow Google still knows where I've been with gread detail and accuracy.

</comment><comment><USER15> Looking at the accuracy of the results it has for me (apparently I only spent three hours at work last week), I'm not worried.

<comment><USER16> Mine says 0...

</comment></comment><comment><USER17> I'd assumed that location history had been turned off when Latitude went away. Glad to see it's still there :).

<comment><USER6> They have (finally) updated the Google+ app, and the "Locations" functionality is much more like the old Latitude. Also, it works on rooted phones now (previously the map tiles wouldn't load).

</comment></comment><comment><USER18> Put me down for "cool" rather than "creepy" on this. I'm mostly annoyed that it's missing a good 6 months in the middle for me. Missing 4 countries and some cool locations due to that :-(

The airplane trips section seems particularly bad, it pretty much only gets my home airport right.

</comment><comment><USER19> Doesn't this constant use of GPS drain the battery?

On every Android-based smartphone I've had ( two! ) I've only enabled GPS and network-derived location when I need to navigate, otherwise the phone shuts- off in a few hours.

<comment><USER20> I believe it keeps GPS positioning to a minimum, relying primarily on network- derived location data. At least judging by the granularity (or lack of) the route data, which causes my commute to work to look most confusing.

Secondly, and this in my opinion is a bug in their algorithm, when I'm at home it frequently switches to my home location and a location about 10 miles away. The only reason I can see for it to do this is it's predicting my location based on my cell site location (phones know which tower they're connected to, Google must know where all these towers are). And my normal cell tower is 5 miles away (right in the middle of my two "locations"), so clearly the algorithm has determined I'm 5 miles away from a cell tower, but can't make up it's mind in which direction. It needs tweaking to remove data points when I suddenly cover 10 miles in a second, over and over.

<comment><USER11> Do you have another device at home?

</comment></comment></comment><comment><USER21> I really like this service, since they have this data anyway it's great it's offered reciprocally. In fact I enable location history which takes it to the next step, though it seems to be a battery killer.

</comment><comment><USER22> My dashboard claims I went here[0]. Must have blocked that whole stint I served as a Liberian pirate out of my mind.

0: [http://bit.ly/19ExLIT](http://bit.ly/19ExLIT)

</comment><comment><USER23> What should I make of my most recently visited place, in the sea outside the Gulf of Guinea? Everywhere I've ever been is _really_ far away from there.

<comment><USER24> That sounds like a lat-lon of 0-0

</comment></comment><comment><USER25> This is so much fun to look at after you've just gotten back from a trip overseas, thanks for the link.

</comment><comment> Digit-Al I wonder if your location data could be used as part of your alibi if you were falsely accused of a crime.

<comment><USER26> Probably not directly but you could use it to remember where you were and try to find someone who saw you. I can see it being used to help the prosecution with no trouble. I am just guessing though.

</comment></comment><comment><USER27> I've had this for years. I explicitly authorized Google to track my history.

</comment><comment><USER28> for some people like me this is a feature and not an issue. You get to choose if you want to be tracked or not so its up to you.

<comment><USER9> For 99.9% of people it's a great feature and not an issue. For the remaining 0.01% it's a karma-harvesting device because everything Google/privacy related is sure to draw clicks. Hence the infinitude of tabloid-ish articles in all the tech websites and blogs in the past months.

</comment></comment><comment><USER29> Its not that accurate, it is that spooky I click accept way to much. It really is like .. Google take the Wheeeeel!

</comment><comment><USER30> Or you know... Disable location history?</comment>


In-Depth Technical Analyses of MySQL LOAD LOCAL INFILE Security Issue - <AUTHOR> https://www.percona.com/blog/2019/02/06/percona-responds-to-mysql-local-infile-security-issues/ <comment><USER2> As a note, please be informed that currently the post has <REDACTED> sections, this is as we have not new received response from MySQL upstream, on or before 28th of Feb we will release the details depending on when/if upstream respond (pcap, screenshots of pcaps, working PoC python code adapted from original OSS).

</comment><comment><USER3> This is worth a read and thanks for such a detailed explanation</comment>


Prey Project for iOS source code released. - <AUTHOR> https://github.com/prey/prey-ios-client <comment><USER2> I can't recommend Prey enough.

2 days after my laptop was stolen, I was able to locate it, perp was arrested (probably to be released later on, don't know, don't care) and I got my laptop back.

</comment><comment><USER3> After fighting with some dependencies I was able to compile it and running on Xcode.

I just couldn't find the piece of code in which you can activate it by SMS, it seems you can only do it by the website/settings. Also, wouldn't the theft be able to shut down the application and get away with it ?

Other than that, thanks for sharing, this will be fun to learn since I'm starting to code iOS apps.

</comment><comment><USER4> Allright - it's GPL licensed. So Apple violates the GPL everytime someone loads the app from the App Store, because of their "you're not allowed to redistribute the app" rule. This was the reason why VLC got pulled from the App Store, I'm wondering how long they will hold up...

<comment><USER5> If the Prey Project owns the copyright for their code they can have the code released as GPL on github and an "All Rights Reserved" compiled binary in the iOS app store.

I doubt this is what they do and accepting outside contributions would be problematic, but if they retain they copyright they can do whatever they want.

Also, the GPL doesn't say you have to allow redistribution of the compiled application, just the code IIRC.

<comment><USER6> >Also, the GPL doesn't say you have to allow redistribution of the compiled application, just the code IIRC.

Incorrect:

3\. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

</comment></comment></comment><comment><USER7> I wonder how this stacks up against Find My iPhone (which every new iPhone user is now prompted to turn on when they set up their phone).

It seems like it would have the significant disadvantage that uninstalling the app turns off location updates.

Maybe there are some advantages I don't know about?

</comment><comment><USER8> I thought OSX firmware password could be bypassed by resetting PRAM. If true then does this invalidate their argument in FAQ about the thief reformatting the HD?

<comment><AUTHOR> If, and really, if the thief knew how to perform such action he wouldn't be a thief...

</comment></comment><comment><USER9> I thought this was for the game Prey.

<comment><USER10> You thought wrong.

<comment><USER11> What's it for then?

<comment><USER12> Prey will track up to three devices with a limited number of reports for free. If you pay (<http://preyproject.com/plans>), you can hold more reports or track more devices.</comment></comment></comment></comment>


Strengthening the Microsoft Edge Sandbox - <AUTHOR> https://blogs.windows.com/msedgedev/2017/03/23/strengthening-microsoft-edge-sandbox/ <comment><USER2> Edge was the most hacked browser [1] (5 times) in pwn2own 2017 contest. In contrast chrome faced only one unsuccessful hacking attempt.

This blog post looks more like a damage control measure.

[1] [http://www.tomshardware.com/news/pwn2own-2017-microsoft- edge...](http://www.tomshardware.com/news/pwn2own-2017-microsoft-edge- hacked,33940.html)

<comment><USER3> > chrome faced only one unsuccessful hacking attempt

One UNsuccessful attempt? Does that mean only one attempt on chrome was made?

<comment><USER2> The team that was trying to hack chrome, could not do it in allocated time.

[https://www.zerodayinitiative.com/blog/2017/3/15/the- results...](https://www.zerodayinitiative.com/blog/2017/3/15/the-results- pwn2own-2017-day-one)

</comment></comment></comment><comment><USER4> It's nice that they're investing in this. I just wish Edge didn't suck. I have tried using it as my primary browser and it's just not there. It crashes, trying to move tabs around is a pain, sometimes it just isn't performant.

<comment><USER5> It opens web pages very fast, there's that. But, alas, everything else just feels sluggish. In my crazy high-end system, it takes a second for the menu to show up after right clicking the address bar.

What I want is IE's rendering speed with Chrome's UI and Firefox's extensibility (the good old system, not the new one).

<comment><USER6> Chrome's extension model is required for security, that's why firefox and edge adopted it and abandoned their old extension/plugin models.

</comment></comment></comment><comment><USER7> The earlier post on Code Integrity Guard and Arbitrary Code Guard is also interesting:

[https://blogs.windows.com/msedgedev/2017/02/23/mitigating- ar...](https://blogs.windows.com/msedgedev/2017/02/23/mitigating-arbitrary- native-code-execution/)

Microsoft should apply these same restrictions to all UWP apps. Yes, that means banning JIT compilation, as Apple does on iOS. And desktop applications shouldn't be able to inject DLLs into UWP applications and system components.

<comment><USER8> In theory, they've always banned JIT in UWP apps, at least by default. UWP apps can't use VirtualProtect; they have to use VirtualProtectFromApp, which only allows JIT if you have the "codeGeneration" capability (and always enforces W^X). I don't use Windows so I don't know how it interacts with this new thing. Maybe the protection wasn't enforced at the kernel level?

On any platform, it makes sense to enforce code signing by default as a hardening measure, but some apps like browsers cannot operate without a JIT. So there needs to be some exception process - possibly requiring the use of a separate process for JIT compilation, as Edge now does. You don't want to end up like iOS where Safari is the only browser permitted on the platform.

<comment><USER9> Modern apps completely banned JIT back in the Windows 8.x days (except for the CLR which was whitelisted), the APIs/capabilities you mentioned were only added in Windows 10.

</comment></comment></comment><comment><USER10> On the subject of the actual content of the article, it was a really interesting read. I would like to hear more about how they profiled or "tuned" the app containers for API access. That might be really useful for other devs.

</comment><comment><USER11> I didn't see this mentioned in the blog posts but I believe Edge also has win32k filtering[1] to reduce the kernel attack surface as well (added in the AU). This is different from the win32k lockdown that Chrome uses which completely blocks all win32k syscalls but instead allows a whitelist(?) for acceptable syscalls to help reduce the attack surface (I'm not actually sure how it works).

It seems the signature is checked before allowing this mitigation so only Microsoft signed applications can currently use this mitigation[1].

[1] [https://googleprojectzero.blogspot.com/2016/11/breaking- chai...](https://googleprojectzero.blogspot.com/2016/11/breaking-chain.html) (see Wrap Up section near the end)

<comment><USER12> So, the thing we call "win32k lockdown" on Chrome is just a term for the various things we had to do to enable ProcessSystemCallDisablePolicy on our sandboxed renderer processes (the processes that handle Web content). ProcessSystemCallDisablePolicy is a very big hammer, because enabling it prior to process launch means the kernel blocks _all_ GDI and NTUser calls, such that the process can't interact with the UI or graphics subsystems. Chrome can do this because our UI and graphics acceleration layer is split into our unsandboxed browser process and the more weakly sandboxed GPU process.

The difference with Edge and IE is that they run their UI and graphics stack in their content processes, which are an analog to Chrome's renderer processes. However, any UI on Windows requires win32k kernel support, so they can't disable it like Chrome does. Instead, Edge uses its win32k filter to limit the attack surface to only the calls that they need. So, where Chrome's architecture allowed us to make an aggressive cut, Microsoft is instead working to iteratively shut off the same attack surface in Edge.

And yes, the win32k whitelist is currently restricted to EdgeHTML processes by the kernel and signature enforcement. I know this because we currently sandbox our GPU process at about the same level as an IE content process, and we wanted to use the win32k whitelist get the same improvements as Edge. Unfortunately, Microsoft is still working on the capability, and is not ready to expose it to third-parties yet (but has given signs they may be willing to do so in the future).

Source: I lead engineering on Chrome security and am the original architect of Chrome's win32k lockdown.

</comment></comment><comment><USER13> I assume this wasn't available in the browser when Pwn2Own happened, because Edge was hit _hard_ by the security teams there.

[https://www.zerodayinitiative.com/blog/](https://www.zerodayinitiative.com/blog/)

</comment><comment><USER14> Edge's only practical purpose is to download Chrome or Firefox, and I hope it stays that way.

MS made it very painful for website developers to support Internet Explorer, and having to support IE crippled the web for years.

Today there is not a single developer that likes Internet Explorer or its successor Edge. You will not see a single human being on planet Earth with an Edge t-shirt, and if you see one, it's probably that person's laundry day.

The e logo only brings memories of your computer freezing or getting millions of stupid popups or a browser window with hundreds of toolbars (when you used someone else's computer), and conversations asking people to try another browser, or having to switch my user-agent string or create a VM with the sole purpose of running an IE only website, or having to stay late at work because some user with IE experienced problems.

Plus, Microsoft is dishonest and used their browser to mine Google Search activity and send it to their servers to improve Bing. And god knows what else.

Microsoft is selfish, plays dirty and does not deserve a seat at the table of people deciding web standards. They can make Chakra 100x faster, make you a sandwich and jump through hoops but nobody trusts them anymore so it doesn't matter.

We all lived a decade under the tyranny of Internet Explorer and we had enough. If there is a product that deserves to go away, it's Microsoft's web browser. The day it does I am going to throw away a party, and I am sure many others will as well. Please give up, use your time on something else.

</comment><comment><USER15> Is the AC Access Scope whitelisting described in the article available to all UWP apps in the Creators Update?

I understand it was added specifically for Edge sandboxing, but it sounds like useful functionality (albeit niche) for other apps that deal with untrusted data routinely.

PS - In terms of technology and standards Edge is a pretty solid browser. I love the Dark theme.

<comment><USER10> Yeah, actually app container tech is available to any native developer. (Maybe there's a .Net API for dealing with them. Don't know.)

<comment><USER15> I wasn't asking about app containers in general. I was asking specifically about the AC Access Scope whitelisting discussed in the article.

Essentially the thing they added in the Creators Update and are discussing here.

</comment></comment></comment><comment><USER16> From the comments section:

"I want to support MS, I'm a development partner. But I feel like you guys spend way too much time thinking about how to push intrusive ad's into the OS and trying to get easy ad-based revenue from your browser: Talking very good security talk but not walking a very good security walk."

The commenter also makes a comment about how Chrome the older browser was found to be much more secure than Edge the newer one. And then a bunch of technical stuff from someone responding to it (the respondent is not the person writing the article).

Am I the only one who feels MSFT would simply be better off not writing these articles at all if they don't particularly care for engaging with their audience?

Oh, and you can't leave a comment without signing in with a _Microsoft_ account. :-)

<comment><USER17> A Microsoft website requiring a Microsoft account to make comments? The horror!

</comment></comment><comment><USER18> just checked my website visitor log. Only 1% people use Edge. It is not a surprise at all.

The best way to secure a browser is just like what chrome and firefox do: open source it.

<comment><USER15> Chrome isn't Open Source. Chromium is Open Source.

Chrome adds a lot of proprietary bits including (but not limited to): Audio & Video Codecs, Flash Plugin, Crash Reporting, Metrics, et al.

<comment><USER19> "Crash Reporting, Metrics,"

These are not proprietary, actually.

" Audio & Video Codecs,"

Neither is this, last i looked (but i haven't looked in a while).

<comment><USER8> The "proprietary" codec support is open source but disabled by default in a Chromium build unless you pass proprietary_codecs=1. Why? Patents. AFAIK, Google pays for a license from the patent holders to decode the codecs within Chrome, but not an open-ended license for anyone using the source code. This is not their fault and no different from how many Linux distros don't include MP3 decoding by default. (Incidentally, the last MP3 patent is set to expire at the end of this year…)

<comment><USER20> The last MP3 patent already expired a week ago actually.

</comment></comment></comment></comment></comment><comment><USER21> CIG, ACG, RCE .. I thought DEP and ASLR was supposed to have already cured RCE. Lets face it, when are they going to admit that the Windows memory model running on Intel hardware is defective. Lets see how long this comment stays up before modded into oblivion.

<comment><USER22> "Please don't bait other users by inviting them to downvote you or proclaim that you expect to get downvoted." [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment></comment>


Reports Suggest Ring Allowed Employees Access to Customer Camera Feeds - <AUTHOR> https://www.macrumors.com/2019/01/10/ring-employees-customer-camera-access/ <comment><USER2> You'd think they'd go back to the drawing board over the algorithm and not open themselves to such a flagrant breach of trust (and privacy laws).</comment>


Constants in objective c, a macro that keeps you DRY - <AUTHOR> https://blog.rollout.io/2015/04/constants-in-objective-c-a-macro-that-keeps-you-dry/

<comment><USER2> Eyal, I think you said once that strings in code will not be accepted in code reviews ;-)

<comment><AUTHOR> You are correct, you can commit it again</comment></comment>


Why I pitched barefoot at Demo Day, and tips for being relaxed on stage - <AUTHOR> http://www.hackerpreneurialism.com/post/81222695099/pitching-airpair-bare-foot-tips-for-relaxed-on-demo-day?ref=hn

<comment><USER2> What's the risk of disabling damage in going barefoot?

If I wasn't balancing damage to spine et. al. with risks to my feet, I'd wear boots suitable for combat, as I did in high school were combat wasn't out of the question. Strong hiking boots, actually, to protect from getting stomped on, and as an implicit message of how I might reply to an assault.

Post-high school, when that would have been clear cut criminal assault, and mobility became more important for avoiding criminal elements, I switched to New Balance 9x9s (high quality running shoes, although I don't run), which I still wear 3+ decades later. Although not around the house.

Anyway, my point is, that as an potential investor, I'd be concerned about your balance of risk and reward; do you feet get dangerously hot that such a risk is reasonable? Severe foot injuries can cascade to death ([https://en.wikipedia.org/wiki/Mel_Tappan](https://en.wikipedia.org/wiki/Mel_Tappan), albeit I'm sure he was older than you). It would be a factor in my making a decision, even though I've known plenty of people over the years who don't meet my standard of foot protection, including going barefoot, without noticeable harm.

<comment><USER3> I've seen the advice that musicians should never go barefoot at concert venues/clubs, given nontrivial risk of incorrectly grounded amps and PA's, but i can't find a source on googles 1st 10 results ("musician barefoot, electrocution, incorrectly grounded PA").

Below link is similar advice: don't plug in amp while kneeling on wet ground, essentially, don't complete a circuit through your heart

[http://www.noshockzone.org/stopping-hums-buzzes-and- shocks-o...](http://www.noshockzone.org/stopping-hums-buzzes-and-shocks-on- stage-%E2%80%94-part-1-volts/)

<comment><USER2> Yeah, I had at least one friend in college who'd been a ham before, and who was still alive because he'd followed the rule of keeping one hand in his pocket while the other worked on hot equipment. A bit limiting, but worth it for him!

Since hearing that I've tried to follow the rule, still do to this day.

</comment></comment></comment><comment><USER4> I personally think this is a cool concept. It's ballsy, but not provocative. That's a sign of a solid person with confidence, which obviously would help your overall pitch. I love the product, too. Best of luck to y'all :)

</comment><comment><USER5> I took notes on every presentation at Alumni Demo Day, and one of my notes for yours was specifically "founders seem very good" (both your backgrounds and delivery/confidence during the presentation), so this clearly seems to have worked for you. (I'm pretty sure I saw you doing a run shortly before the presentations started in the afternoon and you seemed much more nervous.)

</comment><comment><USER6> Ask yourself. 'What is the most important thing I have to say here?' And from what I've read, being barefoot is not one of them. As PG says, 'Yes you can be barefoot.', but that's not the story. And not knowing the difference says only one thing to me - Beginner. But we all have to start somewhere. Might as well be barefooted.

</comment><comment><USER7> My feet look like a hobbit's. There is no way I'm going to expose anyone to my hairy scary monsters.

</comment><comment><USER8> Coming from NYC, one of my irrational peeves is men in sandals or barefoot when not at the beach. Every time I walk around SF I can't stop noticing slobby looking men with their toes on display. How hard is it to put on a nice pair of shoes?

<comment><USER9> If a Hacker News comment is not good enough to post with your regular account, it's probably not good enough to post at all. That's not always true, which is why we don't ban throwaways. But it is certainly true in this case.</comment></comment>


Ask HN: What is more important – editor performance or coding assistance? - <AUTHOR>

What is more important for you as a developer when working with an IDE – editor performance or intelligent coding assistance? <comment><USER2> Well, I use vim, so performance. Sometimes, I even turn off syntax highlighting. Syntax highlighting can be useful, but it can also distract.</comment>


Any.do Cal - <AUTHOR> http://www.any.do/cal <comment><USER2> I...

installed it,

came to the prompt about importing your contacts,

decided that I didn't want to do that,

found that I could not continue setting up the app without doing so,

deleted the app.

<comment><USER3> exactly what I did..don't want to grant access to my corp calendar..not sure if it would copy my schedule to their servers...

Do not want to give it access to my contacts..

deleted the app.

<comment><USER4> same here...

</comment></comment></comment><comment><USER5> My main problem with it at first glance is that in the month view it does not highlight which days have events, so you need to click to see if there's anything on that day.

</comment><comment><USER6> Since we're talking calendar apps, thought I'd post this thing from Teehan+Lax called Upcoming. It's a calendar UI experiment. I'm not sure they nailed it, but it is great to see people trying new approaches...

[http://labs.teehanlax.com/project/upcoming](http://labs.teehanlax.com/project/upcoming)

<comment><USER7> Not nearly as experimental as Upcoming, but Sunrise [http://www.sunrise.am/](http://www.sunrise.am/) has been my goto for a while now. A bit buggy but pretty, functional, and improving.

</comment></comment><comment><USER8> This could be really huge for me. I've tried using Google Calendar to get Google Now, but none of the todo apps I prefer sync with it, and Google Now isn't that useful on a Wifi-only tablet anyway.

EDIT: Wow. This is the best-designed (both looks and interaction) calendar app I've ever used. Everything you want is immediately available - maps show up if an event has a location (wish you could switch to Google maps instead of Apple maps, but no biggie), instant contact buttons show up if a contact is recognized at an event, when you delete a repeating event it asks you if you want to delete all of them, etc, etc, etc. It's taken almost every pain point I've had with other calendar apps and fixed them almost perfectly. The gesture-based navigation is also really good, though a couple of the thresholds need slight adjusting.

This is great.

Edited again for typos: "which" != "wish"

</comment><comment><USER9> I installed [http://radicale.org](http://radicale.org) on my server, [http://acal.me/wiki/Building_aCal](http://acal.me/wiki/Building_aCal) on my android phone and the Lightning extension for Thunderbird on my laptop. Seems fine so far.

<comment><USER10> Hey, radicale looks pretty nice, thanks for the tip.

</comment></comment><comment><USER11> How is it free? Are there ads? Is the project a portfolio-demo for an agency? Are they hoping to get bought out by Apple/Google, and then replace the app with a knock-off version discombobulated by the whims VPs and PMs?

Ah, the price is giving the devs a copy of my address book. To sell? rent? analyze?

<comment><USER12> 17 person team! That's a lot of payroll.

<comment><USER13> Indeed. Surely they must have more than one project in parallel.

</comment></comment></comment><comment><USER14> It wasn't the technology that made auto-playing video/animations bad. Just because you can now do it with native html rather than flash doesn't make it ok.

<comment><USER15> The auto-playing video on this site is Flash, though ... ?

        <object width="480" height="270" type="application/x-shockwave-flash" id="big-video-vid_flash_api" name="big-video-vid_flash_api" class="vjs-tech" data="http://vjs.zencdn.net/3.0/video-js.swf" style="width: 1208px; height: 679.5px;"><param name="allowScriptAccess" value="always"><param name="wmode" value="opaque"><param name="bgcolor" value="#000000"><param name="flashvars" value="readyFunction=_V_.flash.onSWFReady&eventProxyFunction=_V_.flash.onSWFEvent&errorEventProxyFunction=_V_.flash.onSWFErrorEvent&autoplay=true&preload=auto&loop=false&muted=false"></object>

<comment><USER16> It's using a video tag for me; sounds like it fell back to Flash for your browser.

<comment><USER15> Weird. I'm on the latest stable FF; I only knew it was Flash in the first place because it triggered my Flashblock.

</comment></comment></comment></comment><comment><USER17> I really like Any.do but if you download it and sync it across the web via the Chrome extension, don't be surprised when a bunch of random tasks show up on your manager.

I emailed them about it and they said tasks are added as part of the tutorial and that it's intended functionality. I thought that was kind of weird.

</comment><comment><USER18> I can't get my eyes to look at the demo playing on the iPhone.

I keep staring at the background video.

</comment><comment><USER19> For anyone looking for a todo + calendar style app, [http://weekplan.net](http://weekplan.net) is inspired by the 7 habits of Highly Effective People. (I am the developer of the app)

</comment><comment><USER20> I don't understand the big blank iPhone at the top?

Edit: Nevermind. Tested in Safari, and it's just broken in Chromium.

<comment><USER21> The top area is supposed to show/open 1 (or two) movie file(s) through Flash.

<comment><USER8> It's not Flash - I have Flashblock, and there is a flash video on the page lower down, but the upper two are some HTML player. Right-clicking them doesn't show the Flash context menu items, which is another giveaway.

</comment></comment></comment><comment><USER22> I love it, b/c I hate every single calendar app I've ever used to date.

Timeline on android version?

</comment><comment><USER23> I played around it for 5 mins and deceided to delete it. Too fancy. Fantastical is much better IMO

</comment><comment><USER24> So, I guess, blurred background image is not cool anymore.

</comment><comment><USER25> I set it up (and allowed access to my contacts), but it only shows me like 5 people when I try to add events/tasks with a person.

Am I doing something wrong?

</comment><comment><USER26> <title> tag has a typo.

</comment><comment><USER27> is this better than UpTo? seems like that is a like of "press"

</comment><comment><USER28> cute url but what a turn-off with the iphone.

</comment><comment><USER29> Great looking app and all, but it assumes you have good looking contacts AND high-resolution pictures of them. I wonder what visual effect it will have without all those fancy photographs of both people and scenery.

<comment><USER30> This! I personally really can't stand these apps anymore who only show us the best case scenario design on their website or screenshots. I have exactly 0 photos assigned to contacts on my phone. Also, why is there a picture of a city at night for the 'woodwork workshop'. Makes sense, huh? We're not all hispters.</comment></comment>


Less, a leaner CSS - <AUTHOR> http://lesscss.org

<comment><USER2> This looks promising and seems to address a lot of the objections I hear to compass and sass. I do really like the superset syntax approach where css is legal syntax in a less file.

So I will be following along the development. There's still a lot of features that would be required of less to support a framework like compass. There's currently no arguments for mixins, no way to extend the language with functions that call out to code, no macro syntax allowing branching/looping and generation of selectors and properties. Such features aren't needed by your average user writing their own content, but they are absolutely core to building reusable design that can be configured and applied to your code using a simple and intuitive interface.

Anyways, it's really great to see new ideas and innovation in the css compiler space. We all win as these ideas mature and gain acceptance in the web development community.

-chris eppstein (sass core team)

<comment><AUTHOR> Great to have you on board! Compass was definitely one of the inspirations behind Less. Unlike Compass, though, I'd like to keep it small, as it is and as close to CSS as possible, so the more complex features of Compass probably won't find their way in Less, unless they fit the ideal.

<comment><USER2> I know the distinction between Sass and Compass is blurred for many folks, much like ruby and rails.

Compass is libraries and tools to provide project management and community features, sass is the syntax that makes compass possible. Compass could be built on any css syntax with a comparable feature set to sass.

So my point was that until you provide those more heavyweight features in the core language, you cannot have a framework like compass. Frameworks drive adoption, so think about that decision carefully. Having powerful features doesn't force them to be used, but not having them, creates limitations.

<comment><AUTHOR> 'Having more features doesn't force them to be used' — correct, but it changes the perception people have of the tool, as well as what they start to expect from it.

I personally favor smaller tools which do the least amount possible while still fulfilling your needs. That's why, for example, I'm not a huge fan of Rails, and would much rather use Sinatra when I can. I know I'm not the only one.

It's this sort of overhead I'm trying to avoid. Less is very straightforward, and I want to keep it that way—there's not much you need to learn to start using it, and the code base is tiny. For most use cases I think the feature- set will be more than enough, and if it's not, we have Compass.

<comment><USER3> I think you made the right call. CSS isn't complex enough to need a framework. In a lot of cases, CSS frameworks abuse the primary motivating factor for trying to separate style and content in the first place. If I have to use particular HTML markup or class naming conventions, I may as well just forego the separation of content and style altogether and use table layouts.

But less appears to make desperately needed additions that should ultimately show up in CSS itself IMHO. Certainly when I was first picking up CSS -- given my programming background -- I was reaching for the concept of variables and in fact was surprised that they did not exist in CSS. For that reason, I'd consider less to be more of a language extension than a framework.

<comment><USER2> You don't know about compass then. Go watch the screencast.

CSS isn't complex, but building websites that work correctly in 8 web browsers most certainly is. Compass frameworks give you re-use without semantic fail.

<comment><USER3> I do know about compass, but I have a feeling compass will be to less what Prototype is to jQuery, at least for me. When I first learned Prototype I thought it was awesome, but jQuery just ended up making a whole lot more sense to me. Different strokes for different folks I suppose.

<comment><USER4> What you are describing would be closer to Sass vs Less, not Compass vs Less. Compass is a meta-framework built on Sass to make working with CSS frameworks much simpler, easier, cleaner and more flexible.

In your case, you don't use CSS frameworks at all, but you just want a few features that aren't in CSS, so Compass isn't what you'd be considering, Less or Sass would be.

<comment><USER2> At least someone gets it ;-)

<comment><USER3> If I don't want to use a framework like blueprint, and I actually prefer (in this context) the CSS syntax (e.g., braces et al) as opposed to HAML, then is compass still useful to me? That's what is (now) confusing to me given your replies to my original comment. My original criticism isn't of compass. It's just that if I don't like blueprint/YUI/960, then would it not be redundant to use compass?

Hopefully you don't take this personally. If I ever find myself required to use one of the above frameworks, they would probably be a lot more palatable when used in conjunction with compass.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> That web page has shiny-excellent design. It immediately tells you what Less is, how to install and run it, and then launches into source code examples so you can immediately learn how to use it. Very smooth!

(Someone needs to recognize these things and give praise to the people who so richly deserve it.)

<comment><USER6> That's a very good point.

Also a somewhat embarrassing one. My standard practice is to go to Wikipedia to find out what is going on, then back to the page to find out more. And yet, when I came across a good, helpful page, where that was not necessary, I didn't even notice.

I guess this is yet another example of good design being design you don't notice. (Although, obviously, that "you" isn't referring to _you_.)

<comment><USER7> "good design being design one doesn't notice"?

<comment><USER6> Yeah, that works. Also "good design being design that isn't noticed".

</comment></comment></comment></comment><comment><USER8> After suffering through a project with complex css I felt a similar itch and tried to scratch it by developing <http://moonfall.org/>

Its very similar to this, differences I see are:

It uses C/Lua, not ruby, so the cool kids probably wont use it.

Its compiled, so no interpreter needs to be installed.

Its very fast so it can be run as a cgi script, either for just development (avoiding the compile annoyance), or live (as its site uses now), or run from the command line to avoid the compile overhead in production.

You can add functions written in lua and compile them into the executable.

The variables are defined in a separate file, so your editor won't freak out in css mode.

When I introduced it got on smashing magazines best of whatever, [http://www.smashingmagazine.com/2007/08/14/best-of- july-2007...](http://www.smashingmagazine.com/2007/08/14/best-of-july-2007/)

I had a lot of css hipsters hating on me... a lot. They despised it.

Their arguments were like "you don't need variables in css, you have to use the cascade!"

Something like

.my_colored_div, .my_other_colored_div { background-color:red }

... then way further down...

.my_colored_div { width: 100px} .my_other_colored_div { width: 200px}

So instead of defining something once, (a variable), you should define something (dom element) in multiple places.

I'm sure its obvious to you guys that defining something in multiple places like that would end up a big mess. So it didn't bother me so much being criticised by a group of developers who probably haven't done more complicated coding than a few pages of php.

Anyway, I'm not promoting moonfall, I honestly don't know if anybody is even using it, I never did, (although somebody ported it to a perl module), what I want to say is ever since that project that motivated me to develop moonfall, I haven't needed it, because the way I approach css has changed for the better.

I have a few simple rules.

1\. Avoid using css, it relatively sucks. Try to let the html do what it wants. The more css you have, the more you will be fighting the browsers.

2\. If you need variables in your css, you are probably making a big mess that you will regret.

3\. If you have a web page that needs a lot of css, its too busy, or looks too much like a desktop application.

4\. Only put global styles in the main css file.

4\. My most controversial rule, one that has helped me the most but will probably bring on the hating... If a style only needs to be used in one place, or you cannot come up with a good name for it, don't put it in the css file, put it in the style tag attribute in the html style="blah:blahpx". Trust me, try it.

<comment><USER9> Even very complex and messy CSS is easily handled using something like Firebug for Firefox or the Web inspector in Safari.

I won't even comment on the inline styles recommendation.

</comment></comment><comment><USER10> Yes yes a million times yes. I've looked at Sass before but its HAML syntax made it less than appealing. This is beautiful, its just a smarter CSS, leveraging everything you already know about CSS but with the things you wish CSS had.

<comment><USER11> Totally agreed here. The reason I don't want to move to HAML and Sass is the learning curve required of devs, especially those that aren't necessarily familiar with scripting languages (like visual designers, etc). but do know about HTML and CSS.

This is just a simple enough extension to CSS that is natural, but still giving power to express styles much more concisely.

<comment><USER12> I think it is important to differentiate between HAML syntax and SASS. Even though both are part of the same package, SASS syntax is actually quite minimal and closely follows CSS syntax, without the extraneous syntactical elements like curly braces etc.

Chris Eppstein, the inventor of SASS has stated elsewhere that one of his primary goals is to make SASS friendly for designers to use, and he claims to have sought feedback from designers as well. See comments here : [http://jeffcroft.com/blog/2009/may/20/applying-oop- concepts-...](http://jeffcroft.com/blog/2009/may/20/applying-oop-concepts- css/#c150744)

<comment><USER2> Hampton Catlin invented Sass. Nathan Weizenbaum is the primary maintainer now, and I'm just a newbie, only around since Sass 2.0.

Everyone seems to give designers an insultingly small credit for their ability to do development. But the concepts behind CSS and Sass are the hard parts (flow, positioning, block, layout, etc), the syntax is easy in comparison. Every designer that I've worked with who knew css took 1 hour to learn sass and fell in love.

</comment></comment></comment></comment><comment><USER13> Nice looking project, but...

Am I the only one in the world that bemoans naming decisions like this? The name is not just a dictionary word, and hard to get page rank with; it's even the name of an already-existing popular geek word (namely, the UNIX pager).

Am I the only one that thinks that the best names for things are the ones that have extremely few search engine hits before you choose them?

<comment><USER14> I like the name a lot, but I agree that its going to be difficult to google search. Sucks, but doesn't that seem like a limitation of search engines?

<comment><USER15> search for "less css". hmmm. "less extend css" no problem.

i agree that some names are ridiculous for search engines; this one might be ok. jury is still out.

<comment><USER13> Is that like how we "need" to search for: "flickr photo sharing", "wikipedia encyclopedia", "facebook social networking", or "youtube video sharing"?

I think it's better to name your software or site (or company?) something that can be searched for and found by the name alone.

<comment><USER16> This would be more of an issue if it was a consumer service/product. I'm going to give web developers the benefit of the doubt and say they'll probably find this if they're looking for it.

</comment></comment></comment></comment></comment><comment><USER17> For once, I'd love to see one of these things built with a proper parser. The regex madness has to stop!

<comment><USER18> Why? Sane regexes aren't all that inefficient, and here efficiency doesn't matter much anyhow.

<comment><USER19> It's not about efficiency, it's about robust parsing.

<comment><USER20> Actually, I think it's about ease of implementation.

<comment><USER21> Correctness > Ease of implementation

</comment></comment></comment></comment></comment><comment><AUTHOR> Also, check out the article @ usabilitypost.com for the full story:

[http://www.usabilitypost.com/2009/06/16/introducing-less- a-b...](http://www.usabilitypost.com/2009/06/16/introducing-less-a-better- css/)

</comment><comment><USER22> I like the look of Less. I've taken cursory looks at other CSS generation tools have been less than enthralled by the ugly syntax and over- complications. Less is lean and looks like something that might be a future CSS extension. I'm definitely going to give it a try.

</comment><comment><USER14> Sass definitely needs some competition. I love it, but there's some things it could improve on.

Allowing the mixin of any class into any class is genius. A very standard workflow when developing SASS stylesheets is extracting out a rule into a mixin, and mixing them into multiple classes. However, eliminating this step is huge.

I really like removing semicolons and braces, so SASS wins out huge in that regard.

I also really like SASS's new syntax for interpolation (standard ruby #{}). It's variable are lame though (use of the bang character for variables was a mistake).

Anyways, good stuff. I'm glad LESS exists and allows people to work around some of the missed opportunities of the CSS syntax.

<comment><USER2> We deprecated some features in Sass 2.2 that will allow us to change the variable syntax in 2.4. Legacy users are a bitch ;-)

The idea of allowing any top-level css class be used as a mixin is a really interesting one that we could consider adding to sass. However, I would argue that you still need an abstract class syntax like the current mixin, especially where arguments are in use.

As a sass framework builder, I really like that I don't have to define a presentational class name that would end up in your stylesheets just so that you can mix them into your semantic selectors. It makes it much easier to keep presentation out of markup.

</comment></comment><comment><AUTHOR> Now if anyone feels like writing a tmbundle for Less, I'll be more than happy to put it up on the site!

</comment><comment><USER23> This is outstanding. It's simple and logical. You don't need to learn any new language. It doesn't "fix" CSS but it provides a lot of very useful features to help clean it up. The nested rules and variables are really useful. The mix-ins seem like they are already "sort of" available in CSS by just assigning multiple classes to an element.

Any plans to port this to other languages?

</comment><comment><USER24> This is a near perfect example of an incremental improvement. Kind of reads one's mind about what would be ideal to add to css - and provides it in a completely intuitive implementation. Bravo.

</comment><comment><USER25> Mixins! Why has CSS not implemented these brilliant syntax rules? It's so intuitive and fits in with any programmatic workflow.

<comment><USER26> Coming to CSS about 6 months ago I was just amazed that it doesn't have these features already, like variables and mixins. Is there anything like this out there already for PHP?

<comment><USER2> What is it about php folks that think that everything has to be implemented in php?

<comment><USER26> I'm not suggestion everything has to be implemented in php, however, I'd have thought the answer was pretty obvious in this case. FAIL!

</comment></comment></comment></comment><comment><USER27> It seems slightly odd to call it "leaner" when you're adding stuff on top of CSS. The additions seem nice enough, but to me, "leaner" means that the number of [mis]features is being reduced to make a smaller spec and implementation.

<comment><USER28> Yes. And to me it seemed odd that 3/4 of the examples of LESS actually require MORE typing than the CSS. So perhaps not the best name, but looks like a nice tool.

Or maybe LESS should be an acronym: Less Equals Simpler Styles :-)

</comment></comment><comment><USER29> I find it interesting that these tools are targetted at developers when designers could easily benefit from these even more. What would be interesting is if someone could build this into a Javascript library that compiles and converts the Less/sass/Compass code into CSS on the fly. If Cappuccino can do it for executed code written in an entirely different language, I don't think CSS would be that hard either. Of course, it's been a _long_ time since I wrote a lexer/parser from scratch.

<comment><USER19> I think the reason is because designers are not into complex toolchains. Just the fact that you need to compile this CSS is a hurdle that makes this much less usable in a designers world.

I've often bemoaned the lack of variables in CSS for things like colors, especially because hex numbers are not very readable, but overall I'm not an advocate of these kinds of CSS pre-processors. It's not that I don't see the value, but I think they can easily become a crutch for developers who don't want to learn how to write clean CSS and utilize the cascade or refactor their HTML into a more sensible structure (hint: sometimes the most semantic class name is actually a presentational one, rather than duplicating a bunch of CSS, 'mixins' just serving to mask the smell).

The other thing is that cutting designers out of your project just because they can't or won't set up a Ruby environment is a pretty easy way to eliminate a lot of the best designers.

</comment></comment><comment><USER30> I use Sass daily and I will continue to. I don't understand the hate for the indentation sensitivity; no curly braces or semi-colons to deal with and visible structure are huge wins as far as I'm concerned. I guess I'm just not seeing the "obvious awesomeness" that makes this so much of an improvement over Sass. I can see the appeal for the use case of existing CSS but I find that rarely happens.

<comment><USER2> <https://twitter.com/chriseppstein/status/2198875051>

</comment></comment><comment><USER31> Surely everyone has been using a homegrown version of this since they started with css? We use a build script to generate our css files with things such as:

.header { background: @BACKGROUND } .maintable { margin-left: 5+@DEFAULT_MARGIN }

I mean, without it you are left writing it all manually! Good to see something open source though, and I love the hierarchy.

</comment><comment><USER32> This is ridiculous. The first two examples they give you, you are actually producing more code than if you had done it properly to begin with.

      #header, #footer {
          /* styling here */
      }

Less, in their case, is actually more.

<comment><USER33> That's because they are trying to make simple examples. I've wanted this functionality in CSS many times, and in my real-world CSS, it would have made it a _lot_ easier and shorter.

</comment></comment><comment><USER34> How come no one is making these things for Java? Do people just use Ant to do the same thing?

<comment><USER35> No one makes any stuff like this for Java. Java has lost the wind from its sails. Java has been relegated to beige cubicles and enterprise solutions.

I say this as a disheartened Java programmer. I've recently been involved in a Rails project and a couple of Django projects, and then jumped back into Java. The difference in energy is amazing. Who would make something like this for Java? What would its success path be? Acceptance into an Apache incubator and then into "Commons?" Spec JSR-123987 finally being accepted by Sun/Oracle five years after its written?

I know this isn't a new revelation and I'm far from the first person to bemoan the stale, slow death of Java - but I'm sitting at an airport terminal with nothing better to do, and it's raining out, I'm depressed, and probably shouldn't be posting to HN. :)

<comment><USER36> Check out GWT's CssResource support, which is a much more powerful version of Less backed by a real compiler instead of a collection of regexes: <http://code.google.com/p/google-web-toolkit/wiki/CssResource>

I agree that most of the Java web bits (including pretty much all the popular web frameworks) are, for lack of a better term, enterprisey crap. It saddens me a bit that GWT isn't more popular - there's a lot of innovation and power there that gets ignored simply because the framework's written in Java. IMHO, Rails and Django et al are just kind of standard web MVC frameworks that happen to be implemented on fun-to-write languages: the only thing out there that has the real "right" approach to web _application_ dev is GWT, which is fundamentally difference from all the rest (per the Google Maps/Wave team, Wave would not have been possible without GWT).

<comment><USER35> I've never tried GWT. I'll be sure to check it out, thanks for the recommendation.

The most "fun" Java web development framework, IMHO, is Stripes. I think what sets it apart is the lack of enterprisey crap - it's simplicity is refreshing, but it's still powerful enough to be useful.

</comment></comment></comment></comment><comment><USER37> It's interesting, for sure, but I like haml/sass and that style much more.

Not to mention, having arguments for mixins is really, really nice. And compass is solid too.

</comment><comment><USER38> A follow-up: <http://news.ycombinator.com/item?id=662669>

</comment><comment><USER39> for people who want to try out or develop with less without installing the ruby gem, you can compile documents via http here: <http://www.tripeedo.com/less>

</comment><comment><USER40> just as i switched to Compass/Sass...

<comment><USER2> Well lessc is just a replacement for the sass compiler so far. It lacks the project management and ruby framework integration features that you get with compass and sass.

<comment><USER41> For those of us not using Ruby frameworks, that's a definite plus. It's nice to have a simple standalone tool that does this.

<comment><USER42> Except that I doubt that anyone not using Ruby is going to install Ruby just to run this. It looks very promising, but without a standalone compiler it is useless to me.

<comment><USER4> _"Except that I doubt that anyone not using Ruby is going to install Ruby just to run this"_

I don't see why not. Most developers depend on tools written in a variety of languages.

<comment><USER41> Agreed. I barely know Ruby, but I have Ruby installed cause so many quality tools are written in it.

</comment></comment></comment></comment></comment></comment><comment><USER43> Perfect</comment>


Acoustic Prism Invented at EPFL - <AUTHOR> http://actu.epfl.ch/news/acoustic-prism-invented-at-epfl/ <comment><USER2> The actual paper is here: [http://scitation.aip.org/content/asa/journal/jasa/139/6/10.1...](http://scitation.aip.org/content/asa/journal/jasa/139/6/10.1121/1.4949544)

With pictures of the apparatus.

</comment><comment><USER3> Isn't this what the cochlea already does in a human ear?

<comment><USER4> Yes, essentially! One key difference is that frequency and intensity coding in the cochlea is facilitated by a a built-in active physiological component (outer hair cells) that enhances frequency selectivity and provides compression of the structure that vibrates inside the cochlea (basilar membrane). The outcome is that listening acuity is preserved across a large dynamic range and variable background noise levels.

<comment><USER5> What do you mean when you say the hair cells are "active"? I can see how the hairs enhance certain frequencies, but does their tuning change dynamically somehow?

<comment><USER4> Great question, and sorry for not being clear. It's not the frequency tuning of a given outer hair cell (OHC) that that changes, it is their response to the sound level (what I meant by dynamic range). OHCs are activated by basilar membrane motion (the basilar membrane mechanically vibrates due to the physical sound). At low sound levels, the basilar membrane itself does not have a large displacement. The theory is that when OHCs depolarize (fire) due to basilar membrane displacement, resulting transduction currents activate motor proteins that change the length of the cell so that it "jumps" to displace the vibrating membrane (basilar membrane) more.

[http://i.makeagif.com/media/10-06-2015/yxvqkm.gif](http://i.makeagif.com/media/10-06-2015/yxvqkm.gif)

So at low sound levels, OHCs create a sharper displacement (gain) where vibration is maximal on the basilar membrane, which enhances the frequency coding onto auditory nerve fibers (via inner hair cells).

High sound levels displace the basilar membrane more, which can lead to broad patterns of excitement of nerve fibers coding for adjacent frequencies. At these levels, the OHCs do not change length as much, which compresses the membrane movement. The compression helps to maintain sharper acuity at the frequency that is physically present, and less so at adjacent frequencies. The function describing OHC length changes against level of sound is thus nonlinear, with gain at low levels and compression at high levels. This compression is not seen when the organism is dead, when OHCs are damaged, or when OHCs are genetically knocked out.

</comment></comment></comment></comment><comment><USER6> I wonder how much of an improvement this will be over microphone arrays and determining direction in software.

<comment><USER7> I've marveled at the difficulty of determining the direction and origin of unknown sounds, esp. low pitch sounds.

For example, the people of Windsor, Ontario, Canada, have been hearing a rumbling noise for six years and have been unable to locate it, although they finally have a theory that it's coming from a blast furnace[1].

We're talking about a city of 210,000 where a large segment of the city have regularly heard it over the span of 6 years: _" In 2012, more than 22,000 people dialled in to a local teleconference about the hum [to voice their concerns]."_

I'm surprised that there isn't an instrument that you can flip on and have it reliably locate a continuous sound that lasts for hours or days at a time. Is there something about low pitch sounds and vibrations that make them particularly hard for direction finding tools?

[1] [https://www.theguardian.com/world/2016/jun/07/windsor-hum- ca...](https://www.theguardian.com/world/2016/jun/07/windsor-hum-canada-zug- island-united-states)

<comment><USER5> Don't know about the specifics of that case, but I can imagine that for low- frequency pervasive sounds, they bounce everywhere and thus any such equipment would measure them as "coming from everywhere", because they literally are. There's a source, but it's masked completely by reverberation effects. At some point with enough diffusion there is very little signal in the noise, if that helps..

<comment><USER8> I still don't understand why they could not locate it.

Sounds falls off with the square of the distance. A single, localized measurement can have a hard time pinning a direction, but a series of sample over an area will give you a 3D curve of intensity with a maxima near the source...

</comment></comment></comment></comment><comment><USER9> YouTube link from the article : [https://www.youtube.com/watch?v=6sSBPxAv2qk](https://www.youtube.com/watch?v=6sSBPxAv2qk)

</comment><comment><USER10> It's not loading for me, so here's a text-only version from Google. [https://webcache.googleusercontent.com/search?strip=1&q=cach...](https://webcache.googleusercontent.com/search?strip=1&q=cache:http%3A%2F%2Factu.epfl.ch%2Fnews%2Facoustic- prism-invented-at-epfl%2F) Sounds like a cool idea, but being able to load the pictures would probably help.

</comment><comment><USER11> I wonder whether this has any real-world applications, since the Fourier Transform is a well understood and easy to implement method for analyzing spectra digitally.

<comment><USER12> The question is: when can you not use the Fourier Transform (or it is really bad)?

I can think of situations when one frequency drowns the other in your transducer

Also this was built for the audible range (apparently), but it might have more interesting uses in different ranges or fluids

<comment><USER13> They mention using it for sonar in the paper</comment></comment></comment>


Ask HN: Website to trade programming skills? - <AUTHOR>

Hey HN, a while back I remember visiting a website where you could list what you know–Ruby on Rails, NodeJS, for example–and list what you want to learn–iOS, Android, whatever–and you could try to find someone who you would compliment. I can't remember if I learned of this website through Show HN, but I don't know where else I may have found it, and I'm having a hard time finding it using hn.algolia.com and Google.<p>Do any of you know what website I'm talking about, or do you know of a website that serves this function? <comment><USER2> Could it be [http://www.skillswap.in/](http://www.skillswap.in/)? Here is a meetup: [http://www.meetup.com/Berlin-Skills- Exchange/](http://www.meetup.com/Berlin-Skills-Exchange/)

<comment><AUTHOR> That was it! Thank you so much, I kept googling skill share which would give me results for skillshare.com. So glad the first comment helped me find it, thanks again.</comment></comment>


CyberLisp: A Lisp to JavaScript compiler - <AUTHOR> http://github.com/manuel/cyberlisp <comment><USER2> Could someone explain to a non-CS major (Maths) what would be the simplest, quickest way to implement a BASIC to JavaScript compiler?

<comment><USER3> In overview:

1\. Write javascript prototypes to mimic the primatives of BASIC where there is no JS equivalent - Arrays spring to mind, JS Arrays are dynamical growing sparse arrays. To support BASIC arrays you will need support redim and redim preserve to resize the array. You may also want to consider a string wrapper type as some implementations of BASIC have mutable strings, JS does not.

2.Write a parser for BASIC that generates an AST (abstract syntax tree).

3\. Walk the AST recursively emitting Javascript equivalents (ie fragments of code) of the BASIC constructs.

4\. Pass that javascript to eval or load it as an external JS file.

The two languages are fairly similar in broad details. subs and functions both become functions, depending on the dialect of BASIC you are implementing you wont need to implement classes, maybe only types. Probably the most finickity detail will be mapping ON ERROR nonsense across to something more sensible, and perhaps handlign by val and by ref arguments.

<comment><USER2> Am I right in saying that a tool like ANTLR would take care of most of these steps? Although I'd love to learn compiler theory someday and do everything myself, I'm constrained by time right now. What tools, frameworks could help speed this thing up for a beginner?

<comment><USER4> In order to use the tools, I think you'll need to understand some basic compiler theory. I can't say for certain, since I only looked at various compiler-related tools after taking a compilers course. But any tool is going to introduce some incidental complexity, and it's having a grasp of the basics that will let you realize "Oh, this is just how the tool does ___."

The good news is that the basics of compilers theory and implementation isn't that difficult. You should be able to learn a lot just through some Googling and some time spent on Wikipedia pages.

With that said, a tool such as ANTLR should handle all of step 2, and part of step 3. The biggest step, though, is step 1, and that's all you.

Since you're a math person, think of this in terms of functions. You need to write a function that takes Basic code and produces semantically equivalent JavaScript code. The bulk of the work is in determining the semantic JavaScript equivalents to all Basic constructs. This also implies that you need to have a deep understanding of the semantics of both languages.

edit: It just occurred to me that I don't know if you want to do this for your own edification, or for a practical purpose. If you have a practical reason, there's probably an easier solution.</comment></comment></comment></comment>


Why I Chose Posterous: a Quick Review - <AUTHOR> http://www.jsuth.com/why-i-chose-posterous-a-quick

<comment><USER2> "Posterous is the most innovative blogging platform available today."

No offense to Posterous staff, but I think they have a lot of work to do before it can really claim that title. I think WordPress currently holds that title.

<comment><USER3> None taken -- we know there's a road ahead, but we're psyched and ready to take on the challenge.

<comment><USER4> By the way, I think that the unwavering optimism of you guys is incredibly inspiring. Every time I've talked with you (I emailed a few criticisms a while back), I get nothing but incredible enthusiasm. I think I started out with a pretty negative reaction towards Posterous, because I'm a Tumblr addict, but now I'm rooting for you guys 100%. Keep it up!

</comment></comment></comment><comment><USER5> _"... Posterous has designed a blogging platform where the entire focus is on email. Your email client is the admin interface. For those of us that have an email client open all day, posterous seamlessly inserts blogging into the day's natural workflow. ..."_

No I disagree with that one.

Maybe my workflow is a bit different but I've found the posting of blogs, images, short messages etc using a purposeful designed interface works better. The bit that doesn't work is joining them together. Flickr, twitter, blogger, wordpress allow you to do one task well. Replacing this process by email is a bottleneck because email clients (in my case 'Evolution') are horrendous things to use as a multi-purpose tool. There is no one way to map what you want to achieve to each service. For example:

\- add a blog entry: include title a couple of pages of text with images and some urls (worked)

\- twitter entry: quick message to a person with a longish url (text length > 140char, failed and url chopped

\- flickr entry: tags + description + title + image (title failed, no tags allowed, no licensing of original images allowed)

I've tried these combinations and had success with the blog, moderate success with the twitter and bit of a failure with the flickr entry. I don't think the idea behind Posterous is bad. It's just the tools I have at my disposal are so clumsy. So the idea of an email interface while it works for me has a lot of rough edges and built-in frustration. Where Posterous does work well is integrating the bits you post, not perfectly but enough to be useful.

<comment><USER4> That would be an interesting challenge: seeing if you could create a single interface that did all that WELL. As in, figuring out how to interpret a plaintext input and sort it out into categories.

<comment><USER5> _"... seeing if you could create a single interface that did all that WELL ..."_

Funny enough I've worked on this for a while and while it's a good idea the effort required is somewhat less than using existing application GUI's to enter data and extract data via feeds or API's. The idea I tried was creating an interface to update multiple services (twitter, flickr, delicious ...) via one page, send to a database and use the api's to auto-update. The hard bits ...

\- how do you add more services easily?

\- how will your display code handle lots of empty fields? Lots of conditionals in your templates. Is your templating engine up to it?

\- how do you selectively and easily send data to one application but not another, some times? Can you change for instance sending links to flickr but not to delicious on a one time basis?

\- how do you handle sites that have no API's or feeds? Like hackernews which had neither for a long time.

The one key advantage of this method is you capture data before you propagate it. So if your well thought out 100 word post (with references) dies because your browser crashes or you press the back button you have a local copy.

</comment></comment></comment><comment><USER6> I believe you can do almost all the things mentioned in the entry with Tumblr's email feature (flash-encoding is through Vimeo).

<http://www.tumblr.com/goodies>

<http://www.tumblr.com/vimeo>

<comment><USER4> I always feel like there's an anti-Tumblr vibe on HN, and I've never understood why. And I seem to recall Marco (one of the lead designers of Tumblr) - making a jab at Paul Graham at some point - though I might be making that latter bit up, since Marco jabs at a lot of people, which is why his blog is such a fun read.

Is there some enmity between the two sets of developers? Is it a Boston- versus-NY thing?

</comment></comment><comment><USER7> I love posterous too, I think they have really made it easy for people like me to post who are having interesting contents in their emails but never get time to update their blogs. Now I can just forward the email I am done. Later on when I can visit through my posts.

</comment><comment><USER8> I'm now using posterous, although I have a in-stasis tumblr. Has anyone spotted a good comparison between the two?

I like the intuitive autopost-to-twitter, works well for me.

<comment><USER4> Marco had one that was pretty scathing back a little while ago. But I'm guessing he's considered to have some bias.

<comment><USER8> link :)?

<comment><USER4> [http://tumblelog.marco.org/40558829/sad-trombone-beats- tumbl...](http://tumblelog.marco.org/40558829/sad-trombone-beats-tumblr-for- simplicity)

It's more anti Techcrunch than it is anti-Posterous, though.

</comment></comment></comment></comment><comment><USER9> now to find one person to read my writings, besides me.

<comment><USER3> iamah -- if you use posterous, I will read your stuff. =)

<comment><USER9> why tank you, but I'll spare you</comment></comment></comment>