A Plea for Companies to Provide Support via Text - <AUTHOR> https://medium.com/@euwyn/a-plea-for-companies-to-provide-support-via-text-98ce541149fa <comment><USER2> A counter-plea from someone in Software Support to _never_ implement something as haphazard as SMS-based support: We have more than enough trouble already getting people to tell us exactly what their problem is when they have the expectation that they must send us a communication with a clear subject and body (not that this stops the random e-mails with no body and a subject of "HELP!"; or the e-mail that evidently went through five people in their company before going to us and contains "FW: FW: FW: FW: App Crash" in the subject line). Do you really think the kind of support we can provide will improve if the expectation is that the user is going to provide as little information as possible? Here's how I expect such an exchange would look:

User [1:51 PM]: help plz

CSR (Customer Support Representative) [1:51 PM]: Hi there! Thank-you for contacting support. What can I do for you?

User [1:52 PM]: my app isnot working

CSR [1:52 PM]: I am very sorry to hear that! I don't believe we have this number on file. Can you please tell me your name ?

User [1:54 PM]: john

CSR [1:55 PM]: Hi, John! I am afraid that won't be quite enough on its own. May I please have your full name?

User [1:55 PM]: john smith

CSR [1:56 PM]: Thank-you, Mr. Smith. Now which app in particular may I assist you with?

User [2:05 PM]: ThatBusinessApp

CSR [2:06 PM]: I see. You are having a problem with _ThatBusinessApp_. May I ask on what platform you are using this app?

[Time elapses]

CSR [2:36 PM]: Mr. Smith? Please tell me which platform are you currently running this app on?

User [2:40]: whats a platform

CSR [2:42 PM]: How are you running this app? On your PC? On a tablet? On your iPhone?

User [2:45 PM]: tablet

CSR [2:46 PM]: I see! And would this be an Android tablet or an iPad?

User [2:50 PM]: at&t tablet

CSR [2:52]: So you got the tablet from AT&T. Do you happen to know what operating system the tablet runs?

User [3:00 PM]: no i dont f_cking kno what os it runs. i already said i got it from at&t. your sh_tty app is broken and its been a goddman hour and u still haev no idea (1/2)

User [3:01 PM]: wat the problem is? this service is terrible and above all else u cost me money by wasting all my txts 4 the month! (2/2)

<comment><USER3> Cheap shot.

I could describe countless communications where the supposed tech-warrior- wizard didn't record accurate notes, didn't listen properly, didn't respond and ... later, this all conspired to ensure that they didn't know what the hell they were talking about.

And don't get me on the customer services staff ... I name no names ... (VODAFONE have completely dropped the customer services ball. It's a disservice).

I actually disagree with the article (from my experience). It's not the communication platforms that are to blame, it's the rigidity of processes and the imprisoning of staff within those processes that are to blame.

I feel sorry for staff and despise the people who design such customer service architecture (at least any I have encountered).

</comment></comment><comment><USER4> We do a substantial amount of support at ExpeditedSSL [1] via email for precisely the reasons the author mentions.

It's asynchronous but lets you respond quickly and for startups will likely be sufficiently organized to keep things moving without a full blown helpdesk application.

Secondly, it lets you be extremely precise and copy & paste friendly in a way that phone calls can't match. Ex: we often have to help people set their DNS entries and it's much easier to email someone the following than explain it.

        Please set your www CNAME to fugu-1111.herokussl.com

Email is in fact so predominant as a support tool that you can actually go quite far with managing support requests in your email client before you need a dedicated support app/service. Modern email clients that nicely group emails into threads are more than adequate to get started.

1 - [https://www.expeditedssl.com/pages/how-we-grew-our- startup-b...](https://www.expeditedssl.com/pages/how-we-grew-our-startup-by- providing-awesome-support)

</comment><comment><USER5> Not SMS, but I work on a call-center-over-IM product. Our customers usually end up relegating their phone systems to a second or third-choice option once it is rolled out and they get their staff trained. Some advantages they cite:

1.) There's no accents in text. Especially for outsourced call-centers and helpdesks, communication through text eliminates a lot of the difficulty in variations in spoken language.

2.) Higher through-put. It's just about impossible to service two phone calls at the same time. It's not nearly as hard to switch between two or three IM conversations.

3.) With enterprise IM platforms, you've got capabilities to step up into a phone call, transfer files and screenshots, do a screen-share, and other things you just can't do with just phone.

4.) Integrating with ticketing systems, customer tracking systems, whatever, is easier, since you can pretty easily look up the incoming requester by their IM username or email, and present that information to the agent servicing the request.

About the only downside is that, developing, you're often dealing with limited APIs, half-baked, incomplete and even downright incorrect documentation, and weird, little-known platform limitations.

</comment><comment><USER6> It'll happen soon enough. The post millennial generation lives and dies by SMS. Another (imho) neat thing to happen alongside this will be 911/999 service via SMS.

<comment><USER7> Actually I think I sent maybe 4 texts last month. That's been entirely subsumed by Facebook messenger and whatsapp.

</comment></comment><comment><USER8> I work for a law firm. We have this in place, and people use it to schedule meetings, or ask a call back, or even detailed questions.

</comment><comment><USER9> I've been using Sonar [1] to provide customer support for my clothing brand via text for about 9 months now, and customers have loved it. Interactions are much quicker than email, so it's great for us as well.

1 - [https://www.sendsonar.com/](https://www.sendsonar.com/)

</comment><comment><USER10> We need a plea for companies to provide support at all. Google _still_ lacks any meaningful support for many services (AdSense, Google Play, etc)</comment>


Why I Won't Do Another Kickstarter Campaign - <AUTHOR> http://www.eetimes.com/author.asp?section_id=36&doc_id=1327192&

<comment><USER2> Awesome write-up. Should probably be required reading for anyone planning a HW based Kickstarter.

It wasn't until I got to do a startup where I participated in the entire process of concept to production for a reasonably complex hardware system (an internet appliance) that I really appreciated just how many moving parts there are in building something and how many ways that process burns money. One of the most painful things was allowing our UL Lab certification burn up a perfectly good unit on purpose. I really wanted them to use a test board inside that we already knew was dead (and it had rework on it besides) but they were adamant, the 'as shipped' configuration had to be burned to a crisp. Ouch.</comment>


Three Not-So-Obvious Metrics You Should Be Tracking - <AUTHOR> http://www.onboardly.com/customer-acquisition/three-metrics-to-track/?__lsa=0db75217

<comment><USER2> Staff turnover is huge, especially for startups. It can be make or break in the early stages.</comment>


500 Startups Announces First Class Of New Incubator Program - <AUTHOR> http://techcrunch.com/2011/02/10/500-startups-announces-first-class-of-new-incubator-program/ <comment><USER2> I have a feeling this is going to be a battle of clout - whose name will carry further. Not to mention 500 startups offers more money (upwards of the Yuri- esque $100k investments) for only 5% stake, which is less than YCs, and you can stay anywhere from 3-6 months, depending on the help you need. More help, less stake...this is going to make the game interesting!

</comment><comment><USER3> The mentorship and talks so far have been AMAZINGLY valuable. The 500Startups team has explicitly asked founders in the program to be vocal and outgoing about the program. So ask me anything :D

<comment><USER3> For example, a common question is... how does one apply. There are some misleading answers on the internet right now but the official answer is you don't. It is a lot like typical angel/VCs, you have to network and come in via some mutual connection.

<comment><USER4> That seems a bit backwards to me, though it explains the higher investment at lower stake.

One of the attractive parts of YC is the mentorship in _exactly this category_ [1] that comes with the program. Between that and the pay-us-for-space incubator model, it's something of an apples-to-oranges comparison to YC, anyway.

[1] Or at least how to approach getting funding, if not networking in general.

<comment><USER3> Yeah, not really a good comparison. There are a good number of YC companies in the 500Startups portfolio/mafia.

What I liked about the current process is that networking and pitching became a way to practice and learn more about that process - which will be extremely useful in later rounds.

</comment></comment></comment></comment><comment><USER5> Can't wait for 500S demo day.</comment>


Don't tell StackOverflow I'm a hacker (they think I'm a bot) - <AUTHOR> http://blog.medusis.com/dont-tell-stackoverflow-im-a-hacker-they-thin <comment><USER2> Hi!

First of all - team@stackoverflow email goes straight to Jeff, and he replies to it personally. There's no secret team of people pretending to be Jeff to deal with customer service requests :-)

I personally believe that any company--or country--that thinks it's a good idea to filter web traffic deserves just about as much collateral damage as they get. If a company or country wants to cut its workers off from the knowledge they need to do their job, honestly, I would like to see that company or country get beaten to a pulp by the forces of evolution.

But... I feel for you. There are lots of websites that use our API to provide alternate views on Stack Overflow at other addresses, for example, <http://sa.column80.com/?api=0> has a nice lynx-compatible browser.

<comment><USER3> I get "Fatal error: The user ID must be numeric in /home/markness/column80-sofu/phpstack.class.php on line 419" when trying to read anything

<comment><USER4> I think you need to enable cookies. That fixed the error for me.

</comment></comment></comment><comment><USER5> I'm surprised that people are scraping their content via bots, given that it's licensed under CC and freely available to download. (<http://blog.stackoverflow.com/category/cc-wiki-dump/>)

<comment><USER6> I'm guessing that these are people who either want something more up to date than the data dump (which is monthly if if I recall) or who have scraping infrastructure set up and working and it's easier to use that than to work with the schema.

<comment><USER7> It's bi-monthly nowadays. Even so, you can use the API instead, its there for a reason.

Its too bad for this guy that he simply can't access SO the normal way, but that's not SO's fault

<comment><USER6> I agree. SO is great but we all need to be realistic about situations where for one reason or another we're edge cases.

</comment></comment></comment></comment><comment><USER8> Whilst it's not ideal, currently experiencing spammer abuse had lead me down similar paths on one of my web apps. Sadly solutions like this free up time for more core functionality - which I'd much rather spend my time developing, considering that abuse prevention is not a feature you can charge for exactly.

<comment><AUTHOR> Yes, I understand that, and scrapers certainly are a big pain; but shouldn't SO extend a little more effort to avoid false positives...?

<comment><USER9> It seems possible for them to set up the block as a response to request rate/patterns, but as I am unfamiliar with EC2 I have to ask: how hard is it to get a new IP address? If it a matter of stopping an instance and starting another (or easier), blocking all of EC2 may be their only move.

Once the scraper isn't tied to a single IP, I don't see how to filter out abusive requests from the legitimate ones. It will cause the scraper to emulate real-user behavior more and more to defeat the barriers. At the end of the cat and mouse game SO's only option is to block the IP range, or allow scraping from EC2.

</comment></comment></comment><comment><USER10> It probably saves them a whole load of pain. And you are rather a special case, how many non-bots try to access Stack Overflow via a EC2 do you think?

There are plenty of other cheap VPS providers anyway...

<comment><AUTHOR> > There are plenty of other cheap VPS providers anyway...

Certainly, but what am I supposed to do, hop from provider to provider according to who (blanket-)blocks what...?

> you are rather a special case

I setup this VPN, following instructions from a blog post from 2009; I'm guessing there are many people who did the same?

But if I'm going to die as collateral damage, I don't intend to succumb quietly! ;-)

<comment><USER11> While I don't agree with an employer or job site filtering web access, following a two year old blog post on circumventing a client's security measures borders on irresponsible and stupid. You may think of it as only bypassing some web filtering, but by establishing a VPN connection across their border, you've potentially opened their network up to any insecurities in your machine or your EC2 instance with a direct link past their border that your client is completely unaware of.

If you need to perform work on a client site that isn't permitted over their network, you should bring your own connectivity. I carry a cheap cdma modem for that very purpose. Just don't expose your client to additional risks so that you can read SO.

</comment></comment></comment><comment><USER12> If you just need proxy support to get around restrictions, EC2 is an expensive way of doing it (assuming you're using it 8 hours a day).

You can get a VPS (<http://www.lowendbox.com/> tracks various offers) for as little as 3 USD/month, and have it 24/7/365. Even if you're using an EC2 micro instance, you'd have to use it less than 150 hours a month (out of 730) to get ahead.

<comment><USER13> Isn't the EC2 cost 1.68 USD/month for your assumed usage pattern? (0.007 USD/hour * 8 hour/day * 30 day/month)

<comment><USER12> I took 0.02 USD/hour for on-demand micro instance; 0.007 USD/hour also requires a $52/yr or $82/3yr fixed cost on top.

I have no idea how to predict the spot price, and I haven't tried to collect statistics on it, so I (personally) wouldn't choose it for this kind of application, where you expect it to be there all the time, not just when it happens to be cheap.

I mean, 3 USD/month, or 30 USD/year, is cheap enough to pay once and forget about, rather than worrying about turning it on or off.

<comment><USER14> _...so I (personally) wouldn't choose it for this kind of application, where you expect it to be there all the time, not just when it happens to be cheap._

It's not very difficult to set up a script to spin up an on-demand instance if your spot instance gets nuked. Or to just buy another spot instance at a higher price.

<https://github.com/boto/>

</comment></comment></comment></comment><comment><USER15> How are the entire EC2 IP blocks known?

I doubt they rDNS every connection that comes in, too expensive.

Ah, here's a list but it's from 2007, might be out of date

[https://forums.aws.amazon.com/message.jspa?messageID=106925#...](https://forums.aws.amazon.com/message.jspa?messageID=106925#106925)

<comment><USER16> You only have to to lookup once for each /24 and presumably you'd cache the response for a while. The lookup doesn't need to be done online either.

</comment></comment><comment><USER17> StackOverflow once blocked the entire country I'm in (would just return a 403). I emailed them and was told they can re-enable it:

"It's not a problem, I just need reassurance that there won't be RssNotifiers hitting us 1,000 times a day and pulling down uncompressed data."

To be fair, I'm sure they have more important things to do than work on complex rate limiting and abuse detection code, especially for edge cases like small countries or EC2.

</comment><comment><USER18> You probably have ssh access to more machines than just that EC2 instance? Tunnel your traffic through an ssh account.

ssh -D 10001 firstname.lastname@example.com

So long as someplace.com is not blocked by SO you can bind your browsers traffic to your now-running local socks proxy in the internet connectivity section. Set all traffic to go through 127.0.0.1:10001

</comment><comment><USER19> I've hit this issue as well, since we use a lot of VMs on EC2.

</comment><comment><USER20> _"We'll just block all of EC2" seems not only excessively broad but, well,_ lazy.

This conclusion bugged me a bit, in part because I'm old enough to remember when programmers considered laziness to be a virtue. But also because it's not evidence-based. If it were a problem faced by a significant portion of SO readers, I suspect they'd find another way to address it. But if it's a problem only experienced by a couple of readers a year, then spending much time on it would be an "industrious" misuse of resources.

</comment><comment><USER21> EC2 is a big issue for a lot of things. For example, while I was maintaining a credit card donation form for a non-profit, a large chunk of fraudulent submissions came from EC2 addresses - actually more than came from African ISPs.

So I too blocked the whole of EC2; the logic is pretty straightforward, in that a legitimate customer originating requests from there is highly unlikely compared to the other options.

</comment><comment><USER22> Same exact situation here--need a VPN to access some sites from China. No worries though--just make an exclusion rule for SO!

</comment><comment><USER23> Adding the "api" parameter is also useful if you want to copy the URL to someone else. So you can write such things as: [http://sa.column80.com/?q=1860&api=77](http://sa.column80.com/?q=1860&api=77) Now it is a URL that can be copied to someone else that is not on the same session.

</comment><comment><USER23> I found out how to do without cookies: Add the "api" parameter to the query string when retrieving a message. You might have to do manually every time, unless you can write a program to do for you.

</comment><comment><USER24> EC2 is always marked as spam if you try to send email from an instance too. It would be nice if Amazon could create some tier of white listed, verified non- spam instances or something.

<comment><USER25> they have spam as a service for that <http://aws.amazon.com/ses/>

</comment></comment><comment><USER26> Couldn't agree more. Blanket banning of something is rarely good.

<comment><USER27> You'd think they could rate limit requests coming from EC2 ip addresses rather than blanket banning, but I guess value wise its cheaper to block all of them given the low likelihood of it being a real person.

</comment></comment><comment><USER28> I often tunnel my traffic through an EC2 instance when I'm on public WiFi and I've run into this problem with a number of sites.

Most notably (and annoying when out in the city), Yelp.

<comment><AUTHOR> > Most notably (and annoying when out in the city), Yelp.

Confirmed! (but I don't use Yelp so I wouldn't notice)

</comment></comment><comment><USER23> Hay! I try to use it on gopher?

</comment><comment><USER29> I'm with StackOverflow on this one. If I was then, I wouldn't waste my time fine tuning the detection, and just block all of Amazon ECS.

</comment><comment><USER30> Its a business decision.

Easy to do ... instead of having someone spend time trying to make it work for 0.005% of Stack overflow use cases (yes. I pulled that number entirely out of my rectum. chill out.) ... sucks, but I get it.

</comment><comment><USER31> _"We'll just block all of EC2" seems not only excessively broad but, well, lazy._

Well, yeah. It's a Windows application, and lazy is the name of the game on Windows.

<comment><USER32> Why not just use TOR with your EC2?</comment></comment>


Replacing 32-bit loop variable with 64-bit introduces performance deviations - <AUTHOR> http://stackoverflow.com/questions/25078285/replacing-32bit-loop-count-variable-with-64bit-introduces-crazy-performance-devi

<comment><USER2> To elaborate on the justification for the answer:

        So Intel probably shoved popcnt into the same category to keep the processor design simple

In the processor design I work on, we do register dependency checks by partitioning all instructions into a set of "timing classes" and checking the dispatch delay needed between dependent register producers and consumers across all possible timing class pairs. The delays vary depending on available forwarding networks, resource conflicts, etc. Often times we groups instructions into sub optimal timing classes to simplify other parts of the design or just to make the dispatch logic simpler.

Intel's x86 core is waaaaay more complicated than the core I work on and has far more instructions, so I it's probably safe to say that they make these suboptimal classifications often. I strongly suspect that the false dependency was intentional and not a "hardware bug" as some of the StackOverflow comments seem to suggest.

<comment><USER3> I wouldn't classify it as intentional nor a "bug"; probably it's more of an oversight, as it's mentioned in the article that AMD's CPUs don't have this issue. Intel should definitely be made aware of this.

 _We can only speculate, but it 's likely that Intel has the same handling for a lot two-operand instructions. Common instructions like add, sub take two operands both of which are inputs. So Intel probably shoved popcnt into the same category to keep the processor design simple._

On the other hand, MOV doesn't read both operands either.

<comment><USER4> Reg-Reg MOV doesn't use an ALU, though.

It would be interesting to see if the Intel C Compiler knows about this false dependency.

<comment><USER5> 'icpc' (the Intel C++ compiler) has equal performance for both of the test cases, and it did choose to use different registers for each call. But it's not clear if that's by design or by chance. In some ways, that's the boring part. The interesting part (to me) is that both tests are much faster than either version with g++.

Here's icpc 14.0.3 vs g++ 4.8.1 on a Sandy Bridge E5-1620 @ 3.60GHz and a Haswell i7-4770 CPU @ 3.40GHz.

      nate@sandybridge:~/tmp$ g++ -O3 -march=native -std=c++11 popcnt-dependency.cpp -o popcnt-dependency
      nate@sandybridge:~/tmp$ popcnt-dependency 1
      unsigned	41959360000	0.608615 sec 	17.2289 GB/s
      uint64_t	41959360000	0.82312 sec 	12.739 GB/s
      nate@sandybridge:~/tmp$ icpc -O3 -march=native -std=c++11 popcnt-dependency.cpp -o popcnt-dependency
      nate@sandybridge:~/tmp$ popcnt-dependency 1
      unsigned	41959360000	0.182781 sec 	57.3679 GB/s
      uint64_t	41959360000	0.182638 sec 	57.4128 GB/s

      nate@haswell:~/tmp$ g++ -O3 -march=native -std=c++11 popcnt-dependency.cpp -o popcnt-dependency
      nate@haswell:~/tmp$ popcnt-dependency 1
      unsigned	41959360000	0.401225 sec 	26.1343 GB/s
      uint64_t	41959360000	0.75841 sec 	13.826 GB/s
      nate@haswell:~/tmp$ icpc -O3 -march=native -std=c++11  popcnt-dependency.cpp -o popcnt-dependency
      nate@haswell:~/tmp$ popcnt-dependency 1
      unsigned	41959360000	0.0843861 sec 	124.259 GB/s
      uint64_t	41959360000	0.0842836 sec 	124.41 GB/s

That would be incredible if true! But I think it's a bug, since the inner loop looks far too short and doesn't seem to be repeating the popcnt's. I'm not sure yet if it's a problem with the compiler or if the test case is abusing something undefined.

<comment><USER5> OK, it looks like 'icpc' has decided that it would be fastest to invert the two loops: popcnt() once, then repeat the addition 10000 times. I'm neither a language lawyer nor a friend of C++, so I'll refrain to trying to decide whether this is a legal optimization. But a liberal sprinkling of 'volatile' makes it do what was obviously intended. After this, the speeds are more comparable, although 'icpc' retains a small (but much more plausible) lead:

      nate@sandybridge:~/tmp$ popcnt-dependency 1
      unsigned	41959360000	0.517827 sec 	20.2495 GB/s
      uint64_t	41959360000	0.518041 sec 	20.2412 GB/s

      nate@haswell:~/tmp$ popcnt-dependency 1
      unsigned	41959360000	0.351273 sec 	29.8507 GB/s
      uint64_t	41959360000	0.352914 sec 	29.712 GB/s

The other test I did was checking what Intel's IACA (a wonderful optimization tool that you really should be using if you are not already) thought about the g++ loop. It did _not_ notice the false dependency, and said the loops should take the same amount of time. Do this suggest that the Intel compiler is just getting lucky, or that Intel doesn't have great internal communication between teams?

<comment> floody-berry That's the problem with microbenchmarks, ensuring they're measuring what you think they're measuring.

</comment></comment></comment></comment></comment></comment><comment><USER6> TLDR: Headline (and indeed bulk of article) is phantom symptom. True cause is register allocator behavior.

Specifically, allocator's handling of an instruction with a false dependency on register that's written to, coupled with multiple compilers being unaware of the false dependency.

<comment><USER7> Maybe one should add, that (as much I understood) it is a problem of the processor handling one specific (and rare) instruction. It does assume register dependencies that do not exist. It was shown, that AMD does not have this behavior. And it shows, that today's processors are enormous complex beasts.

The problem with the compilers was, that they where not aware of this behavior and thus generated sub-optimal code for this situation ... but compiler builders are also mere humans.

<comment><USER8> Did they file a bug for gcc and clang?

</comment></comment></comment><comment><USER9> This is why micro-benchmarking is Russian roulette.

When you distill a loop until you're finding the exact bottleneck in the system (pipelining, branch prediction, etc) you need to be very very careful you're measuring what you think you are. Otherwise you'll end up in this situation where you're benchmarking a compiler...

</comment><comment><USER10> I suppose similarly related to this, when I was keeping track of synchronization between two cooperative simulation threads running at different frequencies, I had a 64-bit signed integer: chip A would add chip_B_frequency * chip_A_cycles_executed; and chip B would subtract chip_A_frequency * chip_B_cycles_executed. If the value was >=0, chip A was ahead and would switch to B; and if the value was <0, chip B was ahead and would switch to A.

I ended up getting a noticeable speed boost just by using sync += (uint32_t)clocks * (uint64_t)frequency; ... just a simple 32-bit x 64-bit multiply was quite a bit faster than a 64-bit x 64-bit multiply. (One had to be 64-bit to prevent the multiplication from overflowing, as one value was in the MHz range and the other could be up to ~2000 or so.)

I've observed this on both AMD and Intel amd64 CPUs. Not sure how that'd hold up on other CPUs. As always though, profile your code first, and only consider these types of tricks in hot code areas.

</comment><comment><USER3> It should be noted that using 64-bit operands, even in 64-bit mode, incurs an extra penalty of 1 byte per instruction, for the REX prefix. The same applies to using the extended registers (the uncreatively-named "r8" through "r15".) This is very much not noticeable for microbenchmarks, where all the code of a loop fits in the cache, but for bigger ones, the effects of icache misses can become quite significant. A smaller instruction sequence that is slower than a larger one when microbenchmarked can become much faster once that code is benchmarked as part of a whole system.

<comment><USER11> _(the uncreatively-named "r8" through "r15".)_

I'd much rather have numbered registers that can be used for anything than named registers that have usage limitations.

<comment><USER12> I suspect that aside was written tongue-in-cheek.

<comment><USER11> I'm sure, but in case anyone at a CPU design company gets any bright ideas and decides to start naming everything... ;-)

<comment><USER13> _cough_ MIPS _cough_

</comment></comment></comment></comment></comment><comment><USER14> Hoe can you fix this in VS where there is no way to finely target a.CPU?</comment>


The $4 Million Line - <AUTHOR> http://techcrunch.com/2010/10/05/the-4-million-line/

<comment><USER2> This is a simple case of competition eliminating economic profits.

Right now, investors generally make extremely good returns. The reason the LP's go with them instead of a mutual fund or some other safer bet is that the returns are better so much better, even factoring in the risk. But consistent returns that are better than the other options (better meaning enough higher that it's a better option despite the increased risk) incentivize other people to get in the game so they can get a share of those profits. But with more investors out there, there's more competition for deals, which increases valuations. In a perfect world, it'll find equilibrium at the point where the expected value of investing in a VC fund is the same as the expected value of investing in a mutual fund--the returns will be a little higher in good times, but the risk of a bad fund will be higher. This is how the free market is supposed to work.

Unfortunately, the market tends to overcompensate for things. So instead of finding equilibrium at just the right amount of investment money, what's happening is that we're going from too little money to what is probably too much money. This means that valuations will get so out of control that investors will start getting returns that are low enough that other investment options have higher expected values. This is also a bubble, as it means that startups will be overvalued.

The only bright side is that it looks like the bubble will mainly manifest itself by VCs making no money and entrepreneurs making lots of money, rather than tons of failed startups like last time. So far, this bubble is characterized by good companies being funded at very high valuations, rather than hopeless companies being funded at very high valuations. (Of course people were probably sure pets.com would make tons of money in 1998.)

</comment><comment><USER3> From the article:

       "I wrote about two startups today ...
       neither had involvement from the so called "super angels""

...

       "except Hipmunk, which took an investment from SV Angel."

It's easy to make assumptions when you only have 2 data points.

How about inDinero, who raised $1.2M, some of which was from Dave McClure?

And GazeHawk, who also raised from McClure (full disclosure: I'm with GazeHawk)?

How can 1 or 2 data points be considered enough to write a blog post about a "trend"? I don't know how people can take this stuff seriously.

Also, most valuations that are mentioned with seed-stage YC investments aren't pre-money. The YC convertible note doc has a valuation cap that is pre-money on a Series A, so technically post-money on the note itself. That means that Arrington's example actually nets the company 25%.

Additionally, Arrington's math is wrong. In order to make "any money" given:

       $1M investments at $4M caps
         (even if it gets you 20% instead of the 25% that it should - see above)
       Assuming all exits that happen are at $30M with no Series A

Each one nets you $6M, so 1/6 need to succeed to break even.

"7/10 or more" assumes $15M exits, which was the low bounds of his range.

This whole article screams "agenda", or at the very least ill-informed reporting.

</comment><comment><USER4> Sounds like it's becoming a big gamble, something like hipmunk is pretty new, with little traction and probably very small revenues to match. Given also that the future of travel search is uncertain with Google buying ITA software and the amount of similar companies appearing.

</comment><comment><USER5> > _neither had involvement from the so called "super angels" (except Hipmunk, > which took an investment from SV Angel)._

Neither followed by except! How about "only Alphonso didn't take funding from Super Angels"?

</comment><comment><USER6> > _...a company will raise $1 million on, say, a $4 million pre-money > valuation. That gives investors 20%..._

That gives investors 25%...

$1 million into 10 companies for 25% of each. 7/10 of them exit for $15 million returns $26 million. A damn good return, especially if the time frame is short.

Obviously dilution (and other things) can change things, but so can one or two moderately large exits out of the 7.

<comment><USER7> No, 20% is correct. The share the investor gets is based on the post-money valuation, which is the pre-money valuation plus the amount of cash the company just gained.

Working this example in more detail:

Pre-money valuation = $4 million Cash invested = $1 million Post-money valuation = pre-money + cash = $5 million Proportion of post-money stock that's worth $1 million = $1 mil / $5mil = 20%

<comment><USER6> And I thought that would never confuse me again...thanks.

It's still a big return though, so I don't see the problem with valuations that high.

<comment><USER8> >And I thought that would never confuse me again...thanks.

In things like this, it helps to scale it up to 100% -- what happens if a $4 million company takes $4 million from VCs? Certainly the VCs wouldn't own the entire company, so you can't give them a percentage based on premoney valuations.</comment></comment></comment></comment>


PHash.org: the open source perceptual hash library - <AUTHOR> http://www.phash.org/ <comment><USER2> This can be uber useful for a lot of stuff. We developed something functionally very similar to detect image spam at my $employer a couple of years ago. Good stuff.

</comment><comment><USER3> It's also GPL so if you base your application on it it'll have to have a very liberal license too.

<comment><USER4> You'll have to use the restrictive GPL-3 or compatible licenses and be forbidden from using the more liberal licenses. All point of view.

(I wish software library people would put their licenses up front instead of making me download it to find them.)

<comment><USER3> It says 'pHash is an open source software library released under the GPLv3 license that implements several perceptual hashing algorithms, and provides a C++ API to use those functions in your own programs.' right on the frontpage, looks pretty clear to me

<comment><USER4> I'll be darned. It even has GPL3 highlighted and I missed it. I'll have to change me wish to a more personal one.

</comment></comment></comment></comment><comment><USER5> No updates for a year. Abandoned?

<comment><AUTHOR> A year? 0.3 came out in Nov 08.

<comment><USER5> pHash 0.3

11.03.2008

OK OK, not quite a year yet ..

<comment><USER6> Keep in mind, the authors are using the American date system. That's November 3, 2008, not March 11th.

<comment><USER5> Ah yes, the US-only "middle endian" theory of date notation. Wonderful. Not confusing at all. OK, November, I stand corrected.</comment></comment></comment></comment></comment>


How the Great Pyramid at Giza Looked in 2560 BCE - <AUTHOR> https://kottke.org/19/11/how-the-great-pyramid-at-giza-looked-in-2560-bce <comment><USER2> The article states "smooth layer of fine white limestone on the outside" and that the current outer rough surface is due to "hundreds of years of pollution and weathering".

It was my understanding that the outer surface was polished marble, and that it was removed by looters, not natural degradation. But I haven't been able to find a good source, aside from [https://www.reddit.com/r/history/comments/cxgj96/what_happen...](https://www.reddit.com/r/history/comments/cxgj96/what_happened_to_the_marble_casings_and_gold/)

<comment><USER3> "In AD 1303, a massive earthquake loosened many of the outer casing stones, which in 1356 were carted away by Bahri Sultan An-Nasir Nasir-ad-Din al-Hasan to build mosques and fortresses in nearby Cairo."

<comment><USER4> It seems like earthquakes did for most of the other "seven wonders of the ancient world", too. The others far more completely than the great pyramid, though.

</comment></comment></comment><comment><USER5> My favorite fun fact:

The Great Pyramid holds a record that will almost certainly never be broken: it was the tallest human-made structure in the world for over 3800 years.

(OK technically the Tower of Jericho held the record for ~4000 years, but it was only 28 feet (8.5m) tall; another neolithic archaeological dig could unseat it; that's not happening with Giza)

<comment><USER6> If we all got quietly wiped out tomorrow, I wonder how long it would take for the Burj Khalifa to fall down. Probably less than 3800 years. Then maybe some older, shorter, stronger skyscraper in a geologically stable zone would take the crown for a while.

In the long run though, I suspect the solid stone construction and ultra stable shape of the Great Pyramid would see it regain the title and keep it for hundreds of thousands of years until it blew away.

Interesting to speculate about, anyway. Let us hope we all live forever.

<comment><USER7> I think anything made of steel and concrete would crumble within a couple of centuries, without maintenance. The rebar would rust.

Maybe the stone cathedrals would last longer?

In any case, the biggest man made structure would probably be an open-cast mine or a slag heap.

</comment></comment></comment><comment><USER8> Is there any evidence that these things weren't painted? Given what we know about statues in the classical world, and the way hieroglyphs look, it feels like a safe assumption to make that the pyramids were sporting some artwork.

edit: [https://www.abc.net.au/news/2018-12-16/egypt-unveils-one- of-...](https://www.abc.net.au/news/2018-12-16/egypt-unveils-one-of-a-kind- ancient-tomb/10624214)

<comment><USER9> > Given what we know about statues in the classical world, and the way > hieroglyphs look, it feels like a safe assumption to make that the pyramids > were sporting some artwork.

How can you not mention egypt's own royal tombs, which were chock full of rich artwork (somewhat we know because several KVs still have lot of artwork) e.g. [https://en.wikipedia.org/wiki/File:Egypt.KV62.01.jpg](https://en.wikipedia.org/wiki/File:Egypt.KV62.01.jpg) in KV62, which is considered "modest wall decorations", or [https://en.wikipedia.org/wiki/File:Egypt.KV43.01.jpg](https://en.wikipedia.org/wiki/File:Egypt.KV43.01.jpg) from KV43.

<comment><USER10> >How can you not mention egypt's own royal tombs, which were chock full of rich artwork

This is actually an interesting point by people who argue the Great Pyramid is not a royal tomb...all other royal tombs are richly decorated, whereas the chambers in the great pyramid are noticeably bear.

I always understood the white polished casing stones were not painted but did have carved hieroglyphics (I think this is how they have identified some of the reused stone in mosques for example). On the other hand, the Sphinx still has some blue and yellow paint on it.

<comment><USER11> I find the "it's not a tomb" argument needs some work. If we also consider the other pyramids were all tombs, and that there is evidence of undiscovered rooms in Khufu's pyramid (scanpyramids project and others) then it seems pretty weak.

</comment></comment></comment></comment><comment><USER12> I wonder what future civilizations will try to guess my home Manhattan looked like in my time and what they'll have to reconstruct it from.

If you haven't read the poems Ozymandias: [https://en.wikipedia.org/wiki/Ozymandias](https://en.wikipedia.org/wiki/Ozymandias)

</comment><comment><USER13> Hmm, I've seen a depiction like this before, except around the base it was very green, very jungle like as the climate in the area was not desert like as it is now. Or perhaps the Nile was utilised differently. Very hard to tell. Our history is a distortion of the facts. We have photographs and video of genuine moments right now, but with photoshop and deepfakes we are moving into a new era of distortion.

<comment><USER14> Wow... to think the most authentic age has been ruined by some tools that have useful edge cases.

Maybe we can use block chain to encrypt these real moments so it can be identifiable as real or not. Then again, some super secrete society can try and change ledgers or propose ledgers for deep fakes that get through the cracks.

</comment></comment><comment><USER15> How much would it cost and how long would it take to build an exact replica of the original today, including all the tunnels, chambers, etc?

<comment><USER16> I suspect the main cost would be the materials. Every block of the Great Pyramid weighed about 2.5 tons. It has an astounding 2.3 million blocks. That would be incredibly expensive to purchase and transport to the site, even today. For comparison, building the Great Pyramid would require moving about 10 times the mass of a giant skyscraper like the Bhurj Khalifa.

You could probably build all of the other 6 wonders of the ancient world today, side by side, for less than the cost of building that one pyramid. I'm fairly confident it'd be a billion dollar project.

That said, I'm not in construction. Perhaps someone could correct me?

<comment><USER17> It's interesting to think about how an ancient society was capable of what would be a billion dollar project today, even with modern tools and methods.

<comment><USER18> Slavery is hell of a stimulus package.

<comment><USER19> Except the Great Pyramid wasn't built by slaves (1)

1: [https://www.theguardian.com/world/2010/jan/11/great- pyramid-...](https://www.theguardian.com/world/2010/jan/11/great-pyramid- tombs-slaves-egypt)

</comment></comment></comment></comment></comment><comment><USER20> One of the interesting things to consider when playing Assassin's Creed Origins... You can climb the great pyramid. In the time period of the game setting, it is already 2000+ years old.

</comment><comment><USER21> This is very nice. I would love to see 'How they looked like' for other ancient architectural wonders like Tanjore Big Temple, Taj Mahal, Leshan Giant Buddha, Colosseum etc.

<comment><USER22> Even better, I'd like to see them restored to their initial glory. Imagine visiting something like the Temple of Karnak as it was shortly after completion.

<comment><USER23> AR tours of the site, with the reconstructed original laid over the present forms. You can switch the overlay on and off, or slide it in/out to study the differences. You heard it here first.

</comment></comment></comment><comment><USER24> There's also plenty of evidence that at the time of its construction it wouldn't have been surrounded by desert, but rather a much richer and greener savanna like landscape.

</comment><comment><USER25> Sounds like a restoration project just waiting to happen.

<comment><USER26> Yeah, that would be amazing. It would make them last a lot longer too.

<comment><USER27> Are they at risk of disintegrating?

<comment><USER28> Considering that they are 4500 years old, not anytime soon. Even without maintenance, they would last some more millenia. But if you look at the difference between how they look now and how they used to look, they have suffered quite a bit. Only because they are the most robust structure ever built by man, doesn't mean we should just watch slowly decay. Especially while most of their structure is still close to original, it would be a good time to restore them.

Imagine, if for example the acropolis in Athens would have been kept in original state vs. mostly having decayed. All those wonders of the past we decided to keep, we should preserve, while it is still possible.

<comment><USER29> To be clear, the Acropolis did not "decay". It was blown up by the Venetians when they fired on the Parthenon, which at the time was used to store gunpowder.

<comment><USER28> Thanks, I didn't know that. But the world is full of ruins of great old places, which we try to preserve today, but had not been kept in shape when they were still close to their origininal state. I think old churches are one of the few exceptions.

<comment><USER30> " _Beeldenstorm in Dutch (roughly "statue storm"), and Bildersturm in German ("image/statue storm") are terms used for outbreaks of destruction of religious images that occurred in Europe in the 16th century, known in English as the Great Iconoclasm or Iconoclastic Fury. During these spates of iconoclasm, Catholic art and many forms of church fittings and decoration were destroyed in unofficial or mob actions by Calvinist Protestant crowds as part of the Protestant Reformation. Most of the destruction was of art in churches and public places._"

[https://en.m.wikipedia.org/wiki/Beeldenstorm?wprov=sfla1](https://en.m.wikipedia.org/wiki/Beeldenstorm?wprov=sfla1)

<comment><USER28> Sure, a lot of churches also got destroyed. Yet, a lot of churches are in a remarkably good state of preservation. They are not the only preserved buildings, but the most obvious ones. There are also a few roman aquaeducts preserved, like the one in Nimes, France. And if I am not mistaken, some of the water delivery to todays Rome still uses partially roman aquaeducts. Also, the Pantheon in Rome is in a remarkably great state.

<comment><USER29> The sad thing about the Parthenon (and the Acropolis in general) was that it _had_ been well preserved until then, albeit with changes. It had successively been a church and a mosque. Unfortunately, the Acropolis was also the most defensible position in Athens, so it was (since its inception) a strategic outpost as well. :-(

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> So did it just stood there in the middle of the desert or were there cities and busy streets near it? I can't even fathom what they were thinking when they decided to build these massive monuments...

<comment><USER32> Pyramids and burial tombs (i.e. Valley of the Kings) had religious and cultural significance for the ancient Egyptians. There is a detailed process of entering the after-life, whereby you are mummified, some of organs placed in jars, and you even get your favorite possessions and live servants buried with you. The Pharaohs had these elaborate death monuments commissioned decades in advance of their death...can you imagine being 10 years old and breaking ground on your own pyramid?

If you're like the pharaohs, you need a massive protector for your body, so your ka or "soul" can live on in eternity with your favorite items and servants.

<comment><USER31> That's why I can't fathom what they were thinking or how. They must have had a completely bizarre and alien way of seeing life, their place in the universe and what will become of themselves. We already have this kind of gap between religious and non-religious; but this is on completely different level.

</comment></comment></comment><comment><USER33> Magnificent, isn't it?

<comment><USER34> What blows my mind is that this is 2500 BC.

<comment><USER33> Yeah, probably huge amount of labors spent a good chunk of their life in the project...

</comment></comment></comment><comment><USER35> Pyramidion [1] made of gold (thereby reflecting the sun) explains where the idea of the Obelisk of Light [2] in the game C&C came from. My 2 ct of nostalgia.

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

[2] [https://cnc.fandom.com/wiki/Obelisk_of_Light_(Tiberian_Dawn)](https://cnc.fandom.com/wiki/Obelisk_of_Light_\(Tiberian_Dawn\))

</comment><comment><USER36> That example picture is amazing!

It would have looked even more amazing if the land was greener back then instead of a desert as some theories speculate.

This is on the level of dinosaurs having feathers; radically changing our perceptions of the past.

I wonder how come no fiction has depicted the pyramids like that? Or has it?

<comment><USER37> Assassin's Creed Origins depicts the pyramids like that. Parts of Northern Egypt including Alexandria and the lighthouse are also depicted and interactive.

It was praised enough that the developer introduced an education mode for schools to use which allow walking around without missions or fighting.

Worth picking up on sale and just walking around ancient Egypt.

</comment></comment><comment><USER38> A lot like the top of the Washington Monument, apparently.

</comment><comment><USER39> iirc in relatively recent history locals would climb up and slide down the pyramids for fun, when they were still smooth

<comment><USER40> According to Wikipedia the casing stones were disturbed in a massive earthquake in 1303, many of which were carted away in 1356 to build mosques. That stretches the definition of "recent" by a bit.

[https://en.wikipedia.org/wiki/Great_Pyramid_of_Giza#Casing_s...](https://en.wikipedia.org/wiki/Great_Pyramid_of_Giza#Casing_stones)

<comment><USER39> given that they're 3500 years old, 700 years ago is relatively recent

</comment></comment></comment><comment><USER41> That's not the Great Pyramid; it's the Pyramid of Khafre.

Neat rendering though.

</comment><comment><USER42> It's a lighthouse for the ocean of sand!

<comment><USER36> That might actually be a cool idea to use in a fictional setting like Dark Sun. :)

</comment></comment><comment><USER43> This is really great!

</comment><comment><USER44> Welcome to 2019! It's blogspam of [https://www.newsweek.com/7-wonders-ancient- world-digitally-r...](https://www.newsweek.com/7-wonders-ancient-world- digitally-reconstructed-1421551), which is blogspam of [https://www.budgetdirect.com.au/blog/the-7-wonders-of-the- an...](https://www.budgetdirect.com.au/blog/the-7-wonders-of-the-ancient- world-reconstructed.html), which is blogspam of [https://www.britannica.com/topic/Seven-Wonders-of-the- World](https://www.britannica.com/topic/Seven-Wonders-of-the-World)

<comment><USER45> Hardly. It's linking to newsweek article, from where it gets the info about Giza and the picture, but is its own thing and has nothing to do with the supposed "original" of britannica (which is just a general piece on the 7 wonders with briefly mentions Giza, and says nothing about its surface, which is the topic here). It also features a NatGeo video on the topic.

It's also by a well-known website that does personal curation (not mere aggregation or mindless posting, and no shady SEO and other BS, to be worthy of the "blogspam" title). Kottke is a one-man-brand and has been at it for 2 decades...

<comment><USER46> The image (which is basically the whole "article") even has a Budget Direct watermark on it.

It's still blatant blogspam, whether the person/site doing it is well-known or not.

<comment><USER45> You keep using this word "blogspam". I don't think it means what you think it means. (Or "blatant" for that matter)

"Noun. blogspam (Internet) promotional material posted to a weblog, often one specifically created for the purpose" \-- [https://en.wiktionary.org/wiki/blogspam](https://en.wiktionary.org/wiki/blogspam)

This definition makes it the very opposite of the post, since it's neither promotional, nor "specifically created for the purpose" of promotion.

At worst this is a personal blog site that posts interesting links and curates them. Don't know if you missed the whole 2000-2010 era, but that was a popular thing back in the day.

Sorta like a non-social HN -- where a single person selects the best bits and comments on them. Is HN "blogspam"?

Is anything that's not an original post "blogspam"?

If we were talking about automated aggregation, listicle sites, "link farms", etc, one could agree...

</comment></comment></comment></comment><comment><USER47> we've just found a photo and we want to share with you...</comment>


Ask HN: Tips to remain productive at College? - <AUTHOR> Struggling to keep myself disciplined and stop myself distracted from just working on side projects rather than my studies. Tips? <comment><USER2> The easiest way to stay focused is often to seek more challenging work. If your most difficult class is "history of The Beatles"[1] then you are likely to be board and look for other entertainment. If you are doing well on classes towards your major consider some other classes to experiment with.

I was a mechanical engineering major and I regret not taking more computer classes in college. Think of this as a time to learn and experiment. There is a good chance you will appreciate more breadth in a few years. Even smart college students don't always know what they will really end up doing in life.

Another option at a bigger school is to look into undergraduate research work in one of the labs on campus. We regularly host engineering or physics students and they tend to enjoy it, get some valuable experience, get paid, and earn a good recommendation for their next phase in life.

There is also nothing wrong with working on side projects. Just spend a little time thinking about how you can use them as a piece of your resume when you graduate.

[1] my sister had similar problems feeling unmotivated in college, and I found out she was on this schedule. Adding other classes helped a lot in her case.

</comment><comment><USER3> Set aside time for your side projects. If they're that attractive then use them as a reward. Pavlovian Training works on humans and we can self implement.

Don't forget to socialize, while you focus on that your mind will do its thing without you even realizing.

Music helps some people.

Force yourself to stay disciplined, habits take a while to form. You can have a friend help. Friends are good at telling you when you're being dumb/lazy/distracted.

Your college might have a workshop to help you with vital skills. Take advantage of it. When I did my grades went from Bs & Cs to As.

Work in 25 minute blocks with a 5 minute break. Studies suggest this is an effective time split.

</comment><comment><USER4> Have you considered just focusing on your studies and that there will be plenty of time to labor afterwards. (also go outside and talk to cute boys and / or girls)

</comment><comment><USER5> My electronics side projects during university were what got me my jobs, post- uni.

Also, one key: Do the difficult stuff you're dreading first. Always. A lot of famous successful people point to this habit as the main reason for their success.

</comment><comment><USER6> Treat it like a job, 9-5 work hard and then relax 100%. I get started with 25/5 pomodoro style but usally after 2-3 pomodoros I feel like I can just keep working.

Just get the ball rolling!

</comment><comment><USER7> I had a breakthrough in college when I started staying at the library until it closed at midnight. Before that, I would stay until 6 or 7 and then get a little tired and go home to rest. I would end up getting distracted by my friends. I realized I should just sleep in the library instead. I started doing much better in classes that were kicking my ass.

The goal is to avoid distraction and put systems in place to avoid them. I was a classical studies major so disconnecting from distractions was pretty easy, but if you have to do work on your computer you should consider other systems to avoid distraction.

</comment><comment><USER8> The best blog I know on the subject:

[http://calnewport.com/blog/](http://calnewport.com/blog/)</comment>


Smartphone shipments dropped 18% in China, due to Covid-19 - <AUTHOR> https://techcrunch.com/2020/05/01/smartphone-shipments-dropped-18-in-china-thanks-to-covid-19/ <comment><USER2> There are so many more important things that are no longer being shipped, things that are essential that arent manufactured locally. Yet all we can think about is phones.</comment>


Pottery Without a Kiln – 1 – The Material – Robert Murray-Smith - <AUTHOR> https://www.youtube.com/watch?v=seeuRIXKwoE <comment><AUTHOR> Takeaway: The concept of 'polymers' \-- encompasses a greater set of materials than that of merely plastics.

Muscles, amino acids, polypeptides, sugar, starch, cellulose, polyethylene, geopolymers, aluminum silicates (which most rock and clay is made of) are just a few of the non-plastic type of polymers that are out there...

A polymer is basically any substance made up of repeating units.</comment>


WordPress Targets Premium Designers for Deletion - <AUTHOR> http://www.problognews.com/2008/12/wordpress-targets-premium-themes-for-deletion/ <comment><USER2> Making the comparison of the WP Theme Directory to the iPhone App store was just short of kitschy for the sake of relevance. There's a lot of differences between the App Store and the WP Theme directory; the _only_ similarity between the two is that as mentioned the relevant content (themes) link to the central distribution hub.

But unlike the App Store, if you want a premium theme you can look elsewhere. Distribution isn't a problem with themes. Some discerning developers have found ways to deliver their own apps for the iPhone but the modus operandi is to use iTunes.

Secondly, the spirit of WP is Open Source. Not so much with the App Store. It's proprietary to Apple, applications that are built are the property of the developers (to my knowledge, if the TOS says differently, someone correct me). With WordPress themes, by the nature of GPL you are free to edit them to fit your own needs.

So no, removing a theme from the directory is NOT akin to removing something from the app store, and saying so is just wrongfully begging for some false sense of relevance.

</comment><comment><USER3> This makes sense. If you want free themes, you go to the main site. If you want to buy themes, you go elsewhere. This situation is being overdramatised. It's not like you can't get the premium theme anymore.

</comment><comment><USER4> Automattic controls the core technology. I'd take a hint from Apple's playbook and charge for the privilege of distribution.

Free themes get free distribution, "premium" themes pay.

Seems like everyone wins in that case. Am I missing something?

</comment><comment><USER5> I can understand the support business model for software, but selling support for blog themes? It sounds like Matt might be herding the theme designers off a cliff.

</comment><comment><USER6> Most of the themes I've found and used have been through searches on Google.</comment>


Ask HN: What are good entry level finance jobs in SF, for someone with a masters - <AUTHOR> Or even just good entry level jobs for someone to do analysis in a domain area. I feel like there must be companies who will just take you if you can do basic research but I wouldn't know where to start. <comment><USER2> What do you mean by finance? Corporate finance? Investment banking? Asset management? It could be a lot of things.

<comment><AUTHOR> Anything where research skills might be useful, really.</comment></comment>


What Does That Server Serve? - <AUTHOR> http://bostonreview.net/richard-stallman-free-software-DRM <comment><USER2> Last year and even more so this year, I'm taking back control over my online computing. I've already migrated to using Nextcloud on a VPS for file management (bidding farewell to iCloud Drive and Dropbox). Mastodon has become a big social network in my life, and I run my own instance. I'm planning next to set up GitLab or Gitea or something like that and migrate all my personal repos to there from Bitbucket. Unlike Stallman, I'm not opposed to using some non-free apps and OS platforms. I love my iPad for example. But the rise of big SaaS and vendor lock-in, as well as all the data privacy and security issues that inevitably arise, has pushed me towards building my own "personal cloud". So far, I'm loving it.</comment>


That UDID script I wrote - 350K hits... (w/source) - <AUTHOR> http://blog.maclawran.ca/udid-it-350k-hits-on-a-little-server-in-less

<comment><USER2> Security-wise, the traffic to his server is http, meaning any man-in-the- middle can collect tuples of UDIDs, IP and browser fingerprints, even if he doesn't collect anything.

If you worry about UDIDs being tracked I guess you should worry about the http to his page too.

However, according to somebody who apparently tested it a year ago (and posted it on HN), half of the iPhone apps pass UDID over the same http, allowing collection of the very same or similar data.

Which makes the whole subject of a government agency having UDID database without other convenient data, ummm, quite less probable. IMHO most of the "business entities" are able to collect much more than presented here.

</comment><comment><USER3> The page size is just shy of 3kb. At 350k hits, that's around 1gb of data transfer.

If he had 100 requests in one second (average is 8/ps over 12 hours), that's 300kb per second transfer rate.

1gb of data transfer for a single day is relatively small. Server upload rates of <1mbps is also small.

If we make the page 100kb in size now, for example with a few nice images 350k hits turns to 34gb of data transfer. 100 requests in one second would require a 10mbps transfer rate. A $15p/m host likely wouldn't be able to cope with this.

> I think the combination of Lighttpd+php5-fpm is underappreciated...

So for me the real reason the site stayed up was not because he picked PHP or any other technology, but because the page was barebones and didn't put any strain on the server at all. Page file size is an underappreciated advantage for websites!

</comment><comment><USER4> It's cool that he got so much press in such a short time, but applauding technology choices that allowed him to sustain _8 requests per second_ (assuming this was over a 12 hour period) is ridiculous.

<comment><USER5> I really doubt that these 350k hits were spread neatly over 12 hours.They most likely came as one giant rush. The author would have to confirm.

Considering that lots of peoples blogs die because they get 10k visitors from HN. His small $15 vps did fine.

<comment><USER6> The PHP script is super simple, so lighttpd (which is a great web server, in the same performance realm of nginx) and php-fpm on a shared VPS, is plenty of power and resources.

Never seen $found = `grep $udid FILE` using back-ticks in PHP land. Is that the same as the exec() function?

<comment><USER7> It's also grossly insecure unless you sanitize $udid, which thankfully the author of this script does.

It's still relatively unsafe, as it invokes external programs through a shell, so you're dependent on the shell's environment, which can diverge on different systems. Last I checked, PHP did not have an easy, obvious way to safely invoke another program. You can do it manually with a mix of pcntl_fork and pcntl_exec, but capturing the output using that is more difficult.

<comment><USER8> PHP provides escapeshellcmd / escapeshellarg functions for escaping when building commands.

Is there any shell on which those functions are unsafe ? I think they assume cmd.exe on windows and sh on others.

<comment><USER7> Escaping is difficult to get right, especially in PHP... witness things like magic quotes that existed for so long.

The right thing to do is provide an output capturing API that does not require escaping because it takes a list of strings passed to the exec(2) system call.

</comment></comment></comment></comment></comment></comment><comment><USER9> I had basically the same experience a few years ago when the Wikileaks stuff was first released and I hacked together a basic search engine for it. Interestingly, I got most traffic through Twitter which I hardly ever use personally.

Anyway, that was an EC2 Micro running PHP-FPM on Nginx, and it stayed up without problems through millions of hits over a few days as well. It's easy to write a well-scaling single-function site like that.

Yet a lot of blogs and more complex sites die instantly when they cross a couple of dozen hits per second. I suspect there are multiple reasons for it, but the most egregious one coming to mind is the typical PHP setup within shared hosting environments where every single request means about 30 file compilations and a lot of DB requests. Caching is probably not very popular either.

</comment><comment><USER10> My <http://pastehtml.com/udid> got 130k hits yesterday. PasteHTML.com itself and this UDID tool are running on a moderate dedicated server, nginx/rails/postgresql.

</comment><comment><USER11> What has impressed me most, is that a pretty crap script has received so much praise.

EDIT: Re-reading, that sounds a little bitchy.. I didn't mean it that way. Sorry

<comment><USER12> Please describe how this script is crap. It's short and to the point, it does its job, handles the load, and it doesn't pass bogus characters to the command line.

Perhaps it needs commenting? Could be formatted more nicely? I'm truly interested in your characterization because I'm just not seeing it.

<comment><USER13> I don't know if the 350k hits run that script, let's say they did.

The OP is praising the performance of lighttpd + php5-fpm, but the script actually spawns an external process to search for the UUID. That's like running an old GGI that needs to be executed with every request.

I may be wrong but using lighttpd and php5-fpm (with fastcgi) may not be as relevant as it seems. I'd say that the operating system is caching everything.

EDIT: yes, php-fom is "a simple and robust FastCGI Process Manager for PHP". I'm no doing much PHP lately!

<comment><USER12> Premature optimization. Obviously, this thing works well enough and handles the load. Why worry about whether it's launching a process?

When the system begins to show signs of stress, you look at where it's spending its time, _then_ alleviate the bottleneck.

</comment></comment></comment></comment><comment><USER14> What someone needs to do - ASAP - is do another one where people whose UDID's were on the list can list all the apps they've bought (it should be possible to get these out of itunes somehow) and we can use that to narrow down which ones most people have in common, and track down the organisation responsible for collecting this data in the first place. I would do it myself but I really don't have the free time at the moment.

<comment><USER15> Isn't that what <http://fredericjacobs.com/identifying-the-traitor> is?

<comment><USER14> Exactly what I was thinking of.

</comment></comment></comment><comment><USER16> That demonstrates the value of launching early and "advertising" in the right spots ..: Not so much the capabilities of php or cheap VPS.

</comment><comment><USER17> If your UDID script returns a positve, could you display a link to <http://fredericjacobs.com/identifying-the-traitor> and his "identifying the traitor" survey?

<comment><AUTHOR> Done.

</comment></comment><comment><USER18> Pretty incredible that you were able to withstand that on a $15 VPS. Nice job, man.

</comment><comment><USER19> The article mentions that it's difficult to oversell Xen boxes. Anyone care to comment on why this is?

<comment><AUTHOR> Take a look here: [http://www.freewebspace.net/forums/showthread.php?2246409-Xe...](http://www.freewebspace.net/forums/showthread.php?2246409-Xen- or-OpenVZ-Which-is-faster-and-which-is-better)

</comment></comment><comment><USER20> +1 for lighttpd. We use it extensively here at Nextpeer and it's been super so far.

</comment><comment><USER21> I wonder... Could he have done it on a free heroku instance?</comment>


HighRoller.io - rapid integration of Highcharts JS using PHP - <AUTHOR> http://highroller.io

<comment><AUTHOR> This is a 1.0 project I completed a while ago but never announced/promoted.

It's a free PHP wrapper for Highcharts that is licensed by Gravity.com and released using the Apache 2.0 license.

I created this wrapper to make it easier to create Highcharts objects in my PHP projects. I have employed it successfully in Zend FW and in ToroPHP (<http://toroweb.org/>)

HighRoller is endorsed by Highcharts and is available on Highcharts.com's download page <http://www.highcharts.com/download>

You can read more about it here ([http://johnmclaughlin.info/introducing- highroller-a-php-wrap...](http://johnmclaughlin.info/introducing-highroller-a- php-wrapper-for-highcharts/)) and here (<http://www.gravity.com/labs/>)</comment>


Alda: A music programming language - <AUTHOR> http://daveyarwood.github.io/alda/2015/09/05/alda-a-manifesto-and-gentle-introduction/ <comment><USER2> I've had a lot of experience with various musical languages (ChucK, Csound, Supercollider, Max/MSP, PD, Faust etc.) I've even designed a few music languages for myself. For what it's worth, I did go to a music school and graduated with a bachelors degree in music, with a strong focus in computer music composition.

In the case of Alda, I'm a little underwhelmed. To be fair, it seems that the author of this software has done a good job meeting his goals. The syntax does look quite intuitive, basing it off of Lilypond syntax was a good choice IMO. I wouldn't call it a programming lanuage, and it can't do _everything_ I want, but it seems to fit certain types of music quite well. Here is my big issue:

>In the near future, Alda's scope will be expanded to include sounds synthesized from basic waveforms, samples loaded from sound files, and perhaps other forms of synthesis.

I don't want to say Alda sounds "bad", because soundfonts, samples, and basic waveforms have their place for certain styles of music, but it is certainly quite limiting. Considering that there are massive books written about the "perhaps other forms of synthesis", it doesn't seem like sound itself to be too big a focus.

From what I'm reading, Alda is essentially a MIDI file generator. It doesn't actually produce music, rather, it sends MIDI instructions for how to play music somewhere and leaves it up some other program to make the sounds. All of the other music languages I've mentioned can _actually_ make music internally.

Have you ever considered using other music languages with Alda. Overtone is just Supercollider + Clojure, so I'm sure you do something similar. I imagine it would be pretty trivial to get Alda to write a Csound score, since it's basically just a text table. PD has libpd, which I've had limited success with. I might as well mention my project Soundpipe as a possible DSP engine as well: www.github.com/PaulBatchelor/Soundpipe.git

<comment><AUTHOR> I really appreciate your input, and given your background with audio programming languages, I completely understand how you would be underwhelmed with where Alda is right now.

I do have pipe dreams of making Alda way, way more extensive than it is right now. MIDI ended up being the easiest thing to implement as a sort of proof of concept, but I am completely open to (in fact, am really hoping for) a wide array of music generators at the disposal of Alda's syntax. The next major milestone will be waveform synthesis, probably via a Java library like Minim (my original idea was to control Supercollider via Overtone, via Alda, but it seems there are too many setup issues involved, when compared to a self- contained Java library that I can use from Clojure).

Being able to generate code in other audio programming languages is also a thought I've had -- if not for Alda, then for a spinoff project. The primary thing that inspired me to create Alda was that I love the unbounded potential behind these more robust languages like ChucK and Csound, but the syntax of these languages could be greatly simplified and adapted for use by composers with little-to-no programming experience. I guess my point is that Alda prioritizes aesthetics and simplicity over being a Turing-complete language that lets you do everything you want.

<comment><USER3> Before even bringing in synthesis, my biggest request would be more control flow (beyond the goto).

Loops, if statement, variables and incrementers. Maybe a "key change" we can up X semi-tones after a keychange keyword without rewriting the notes.

</comment></comment></comment><comment><USER4> This is pretty neat. But I found it quickly getting very hard to read towards the bottom.

I feel if there's a computer interpreting some sort of language, that it should have a built in notion of the circle of fifths -- why should I give the computer absolute notes, when everything in music is so relative. Maybe viewing the notes in terms of do,re,mi would make sense, within the context of being in some key; then jumping to another key (like the dominant, or the minor version of the current key). Computers make computation cheap, which means it should be easy to think in terms of abstractions (that's how musicians think about music, then unwind those abstractions into absolute notes when writing the music down).

But then I look at the current syntax, how it attempts to be extremely compact, and worry that it won't be possible to extend to better abstractions very well.

<comment><AUTHOR> I think this is a key thing to notice about Alda. It doesn't attempt to provide abstractions for things like keys, scales, or even measures and time signatures. It's more like writing Markdown: you already know what you want to write; it just gives you a way to represent it in a compact way and turn it into something you can hear back without having to reason too much about what you've written. I want Alda to be as close as possible to a sheet of staff paper that you can write notes on. MML is a very similar language in this regard. The idea is that it's up to the composer to write down the exact notes he/she wants, exactly how he/she wants them.

I realize this is disappointing if you're looking for something with more abstractions, but on the bright side, I think there are some great languages out there that do exactly that. If you haven't already, have a look at Music- Suite ( [http://music-suite.github.io/docs/ref](http://music- suite.github.io/docs/ref) ) and Overtone ( [http://overtone.github.io](http://overtone.github.io) ), along with the Leipzig library, which adds functional programming abstractions for use with Overtone ( [https://github.com/ctford/leipzig](https://github.com/ctford/leipzig) )

</comment></comment><comment><USER5> I'm not a musician of any kind, but I wanted to congratulate the creator of Alda. I believe that (almost) everyone on Hacker News admires and respects those who make interesting projects. We are a community of hackers that are interested in reading about projects like yours. I see you just created your HN account. Congratulations!

I found a few of the comments here a bit critical of Alda, but that's just the way Hacker News works. There is such a large, diverse, intelligent, and involved community on Hacker News that there are always people that have keen insights or have already tried out related ideas resulting in useful, or not so useful, observations. Inside the most critical comments may be the best suggestions.

Keep us posted on the development of Alda; here on HN, everyone is cheering you on.

</comment><comment><USER6> I'd like to add to this discussion by mentioning the ChucK music programming language ([http://chuck.cs.princeton.edu/](http://chuck.cs.princeton.edu/)). Here is a TedX talk by the co-author, Ge Wang, talking about the joys of digital instruments ([http://www.ted.com/talks/ge_wang_the_diy_orchestra_of_the_fu...](http://www.ted.com/talks/ge_wang_the_diy_orchestra_of_the_future)). In the talk, Ge Wang talks about leading the Stanford Laptop Orchestra, which uses ChucK to program all sorts of crazy digital instruments, and also talks about "Ocarina" iPhone instrument. Cool stuff!

<comment><USER7> +1 to ChucK!

I have a library of ChucK code here, LiCK

[https://github.com/heuermh/lick](https://github.com/heuermh/lick)

</comment></comment><comment><USER8> This is neat, of course. Yet, being classically trained myself and a software engineer, both for 30 years, I have yet to find an alternative music notation system that would make me proclaim I would use it.

When I look at a traditional score I see and hear the music in my mind pretty much instantly. There is zero cognitive load, at least at the conscious level. With any kind of text-based notation you have to read text.

Another point, perhaps minor, I think I can say that most of the world does not learn notes as "CDE" but rather "do" "re" "mi". That's certainly how I learned it because I did not study music in the US. Perhaps you've accounted for this?

For me paper and pencil is still the best approach and the most natural experience.

Notation is a powerful tool, in fact it is a tool for thought. I learned this in CS when I studied APL and used the language professionally for nearly ten years. Music very naturally lends itself to a sophisticated notation. I am not sure taking that away can ever produce a better outcome.

Someone more qualified on the subject can probably explain why it is our brains have evolved to be "tuned" for notation. My hypothesis is we evolved powerful image recognition capabilities coupled with high speed classification and semantic processing. We can instantly recognize shapes (predators, something flying towards you, etc.) decide what it is, access a library giving us options and decide how to react. All of that in a very small fraction of a second. Notation benefits from us having developed such capabilities in our brains.

It isn't my intent to criticize this effort. Without attempting new ideas there can never be any progress. Kudos for trying.

I'll end with a question: What would you say is the use case for Alda?

<comment><USER9> > why it is our brains have evolved to be "tuned" for notation

I'm not sure they _are_ tuned--is there any reason you say this beyond personal experience? Music notation is noriously difficult to learn for most people, and many non-classical musicians avoid it entirely.

Maybe it's just self-selection. Those with a natural gift for reading are likely to become classically trained musicians, and those without it are likely to find other means of creative expression.

<comment><USER10> i think pianists, string, woodwind and guitar players look at scores differently, they visualize them and start recruiting motor skills ahead of time.

WHen i look at a Bach score as a pianist, i just kind of flow thru it, if i see it as a guitar score, i think of the simplest fingering patterns (CAGED patterns are the simplest framework), a woodwind player wants to pinpoint the large intervals and octave breaks and other difficulties where intonation and tone become tricky

(whereas with somebody laying out a c++ project or studying Baby Rudin (real analysis), you can't explain it in terms of muscle memory

</comment></comment></comment><comment><USER11> [https://en.wikipedia.org/wiki/List_of_audio_programming_lang...](https://en.wikipedia.org/wiki/List_of_audio_programming_languages)

What's the selling point of this one?

</comment><comment><USER12> This is _awesome_ , I've dreamed about something like this for a long time. Cool that it's done in Clojure too :)

<comment><USER13> I also think Clojure is a great fit.

I've had some really good results with sample-based algorithmic composition, so I'm really looking forward to this:

 _" In the near future, Alda's scope will be expanded to include sounds synthesized from basic waveforms, samples loaded from sound files, and perhaps other forms of synthesis."_

<comment><USER14> Wonder if VST support is a possibility. Also things like automation, for changing parameters like volume over time.

It's easy to see how a programming language can be a good fit for notating certain kinds of music and allowing playback of it. Seems to me like the challenge is to go beyond lining things up neatly to a grid and introducing any kind of "looseness" to the music.

Edit: Then again, people do great stuff with trackers, so I'm sure a programming language can be a great fit for some kinds of music.

<comment><USER13> Definitely!

Though you may already know, aligning notes to exact subdivisions of the beat is called quantization.

[https://en.wikipedia.org/wiki/Quantization_%28music%29](https://en.wikipedia.org/wiki/Quantization_%28music%29)

Quantized music feels noticeably less organic and lively, to me at least. Audio sequencers like Linux's Hydrogen give you the capability to mess with "lead" and "lag", but it must be done individually for each note and so is fairly tedious.

I've used the Python module pydub along with a random number generator to set samples slightly ajar, but, while it helps, a purely random approach doesn't capture how human performers implement lead and lag.

I absolutely recommend pydub as an easy way to manipulate sound files.

[https://github.com/jiaaro/pydub](https://github.com/jiaaro/pydub)

<comment><USER14> Thanks for the info, pydub looks nice! And I suppose that when you have music represented by a text file, as is the case in Alda, you can then use other programs to operate on the text file (for example, you could probably write a script to vary note/rest lenghts a bit using the quant attribute).

</comment></comment></comment></comment></comment><comment><USER15> I get the thinking behind this, and seems a neat little tool. However, I can't help thinking that the problem the author cites with modern GUIs being too distracting to use is more likely to be solved long term by the likes of StaffPad[0]. This allows you to physically write your notation on a blank digital canvas, meaning the only difference to writing on a blank sheet of physical paper is the tactile contrast of using a stylus rather than a pen/pencil - something that is improving all the time.

[0] [http://staffpad.net](http://staffpad.net)

</comment><comment><USER16> Disable non-error debug messages ([https://github.com/alda- lang/alda#logging](https://github.com/alda-lang/alda#logging)):

export TIMBRE_LOG_LEVEL=error

alda repl

</comment><comment><USER17> This is a pretty advanced language, i like it much!!! I want to share what i was experimenting with lately... It´s a very easy language to produce music in the form binaural audio, it helps me to sleep with my insomnia. Sbagen is the name and you create .sbg files. [http://uazu.net/sbagen/](http://uazu.net/sbagen/) Idoser is based on the same source Use this here to create or edit .drg files from or with .sbg files. [http://binaural-spot.blogspot.de/2010/08/drg-author- installe...](http://binaural-spot.blogspot.de/2010/08/drg-author- installer.html) There is also an online converter for .drg files to .sbg and the .sbg files actually show you the source, you can create wav files but they are very large.. Use the .sbg files and in case you want this mobile, here is an android version that can handle these kind of files: [http://www.normalesup.org/~george/comp/binaural_player/](http://www.normalesup.org/~george/comp/binaural_player/)

</comment><comment><USER18> Interesting ! Not that far from the new Common Lisp based language OMN brought by Opus Modus which was released early this year [http://opusmodus.com/omn.html](http://opusmodus.com/omn.html)

</comment><comment><USER19> Is there some "IDE" for it already or is this going to be my new side project? :)

<comment><USER20> Author mentions IDEs like Guitar Pro, etc. He referred to them as "distracting."

<comment><USER19> And I understand that. What I meant is something completely different - like a set of autocompletion rules for chords and scales, "debugging" abilities (like selectively playing particular voices or parts of song) and other stuff that makes programming... err, composing in Alda easier.

Obviously reusing some already existing text editor, like Vim, Emacs, Sublime or Atom will be the way to go when creating such "IDE". I definitely didn't mean Guitar Pro/TuxGuitar with Alda as a backend, that would be kinda pointless.

<comment><AUTHOR> I was about to say this, exactly! I could easily see something like this kind of functionality in the form of a Vim plugin or Emacs mode.

</comment></comment></comment></comment><comment><USER21> This is pretty cool. Good work!

Couple things come to mind.

1\. Is there a way to play a selected segment of the music rather than the whole file? While composing, replaying a segment over and over again is quite common. Don't want to start from the beginning every single time.

2\. Is there a way to produce music sheet (PDF or PNG) from the source? There would be really useful.

3\. Is there a way to format the notes into measures? I know the | is optional and ignored. Can the program do reformat and automatically divides the notes into measures?

4\. Emacs integration would be great. Using Emacs to edit. Do ^X^E to execute the program to play the selected segment.

<comment><AUTHOR> Thanks for the kind words!

1\. I do have plans to implement start and end points for playback, either in the form of minute/second markings or the already-implemented "markers" you can place in an Alda score. I agree this is a crucial feature -- it will be very useful when working on one small part of a large score. Eventually you should be able to do something like: "alda play --file my-score.alda --start 0:30 --end chorus"

2\. Not yet -- I'm hoping we'll implement a way to generate LilyPond ( [http://lilypond.org](http://lilypond.org) ) typeset scores from Alda code.

3\. My philosophy on bar lines (and the reason why Alda ignores them as if they were comments) is that they're essentially "invisible to the ears," and so they don't serve much purpose except as a way to visually organize your score file. However, in order to generate sheet music (e.g. by generating LilyPond code), we will probably end up making them significant to the parser after all. I can see how it might be useful to think of your score in terms of measures, e.g. "play a few eighth notes, then rest until the end of the measure," so I'm certainly open to the idea of implementing measures.

4\. I agree, although I'm a Vim user :P

<comment><USER22> 4) Just wrote [https://github.com/MadcapJake/language- alda](https://github.com/MadcapJake/language-alda) for Atom. (Atom has the great [https://github.com/atom/vim-mode](https://github.com/atom/vim-mode) package and for the parent, though it seems less complete, there's [https://github.com/avendael/atomic-emacs](https://github.com/avendael/atomic- emacs))

Also in regards to the parent's interest in having a keybind to autoplay alda files, there is [https://github.com/lsegal/atom- runner](https://github.com/lsegal/atom-runner) and with a short snippet in your config you'll have `alt-r` recognize alda files and play them!

For the language-alda package, I'm working on integrating autocomplete support for instruments, markers and attributes. I think I can also add support for atom-runner directly through the language package too.

Between playing around with the langauge and getting tooling support in Atom, my whole Sunday was completely swallowed up! :P

</comment></comment></comment><comment><USER23> Can this language produce an actual grand staff notation, e.g. in a pdf format?

I'd like to use to write down compositions, but it would need that feature to be useful. If I could write down compositions in Vim that would be killer.

<comment><AUTHOR> Not yet... but it's on my to-do list. At some point, we will hopefully be able to generate LilyPond ( [http://lilypond.org](http://lilypond.org) ) scores from Alda code.

</comment></comment><comment><USER24> New to this stuff, but doesn't abc already cover this same ground? [http://abcnotation.com/](http://abcnotation.com/)

</comment><comment><USER25> This looks great, I'll definitely be doing some experimenting! Any way to save the output to an audio file when you're done rather than just hearing it through Alda?

<comment><AUTHOR> Not yet -- I've had this feature on my mind for a long time, though. It's pretty high up on the to-do list.

This is far from ideal, but as a workaround, you could set up a sound recording program like Audacity to record system audio output and play your score.

Hopefully in the near future you'll be able to do something like "alda play --file my-score.alda --output my-file.wav" or something to that effect.

</comment></comment><comment><USER26> It's written:

> o4 c++++-+-+-+

> The above is a really obtuse and unnecessary way to represent an E (a.k.a. a > C-sharp-sharp-sharp-sharp-flat-sharp-flat-sharp-flat-sharp) in Alda.

This is equivalent to c++++, c 4-sharps. This is NOT e, as far as I know.

See [https://fr.wikipedia.org/wiki/Comma_syntonique](https://fr.wikipedia.org/wiki/Comma_syntonique) and how semi-tones are built.

I'm thus wondering how things are built behind the scenes..

</comment><comment><USER27> looks a little bit like lilypond

<comment><USER28> Not much difference insofar as you type characters into a text editor & present the result to be executed. I guess I'm missing something but I'd like to see what it does that Lilypond does not already do brilliantly especially in combination with something like Frescobaldi.

</comment></comment><comment><USER29> Cool, but the tagline is redundant and awkward:

> _a music programming language for musicians_

I would suggest dropping one of the _musics_ : "a programming language for musicians".

<comment><USER30> Think that it is fine just the way it is. A "programming language for musicians" could just as easily be BASIC or something, while a "music programming language" could be aimed exclusively at computer scientists.

</comment></comment><comment><USER31> Besides this being rad - you can see in the Alda repl screeny that the author has earthbound behind it. I love that game.

<comment><AUTHOR> Haha, good catch! I've been madly in love with Earthbound ever since it came out. Playing it was a life-altering experience.

<comment><USER31> Me too. Very, very good game. It's the only real RPG I connected with, and one of the few games that I hold close.

</comment></comment></comment><comment><USER32> Do you happen to have a demo link so we can hear what it sounds like?

</comment><comment><USER33> I installed it, but why is my console filled with debug output?

<comment><AUTHOR> I just deployed a new version of Alda earlier this afternoon (alda 0.4.5) -- it should update for you the next time you run Alda. This new version has better default behavior for logging, i.e. not dumping a bunch of debug logs onto your screen :)

</comment></comment><comment><USER34> Getting "Illegal Argument Exception" when running it.

</comment><comment><USER35> well, no sound from scratch on linux, clojure-1.7 and icedtea jvm.</comment>