Google Glass is still around and just got its first update in nearly three years - <AUTHOR> https://techcrunch.com/2017/06/21/google-glass-is-apparently-still-around-and-just-got-its-first-update-in-nearly-three-years <comment><USER2> If there are any Googlers around here: I'm a medical researcher from Australia and we had really encouraging preliminary results with Glass in operating theatres. We'd love to continue the work but need to be able to buy/acquire about a dozen units. We've tried reaching out to Google via their Glass for Work page, but didn't get a reply.

Our pilot study: [https://www.ncbi.nlm.nih.gov/pubmed/26992465](https://www.ncbi.nlm.nih.gov/pubmed/26992465)

<comment><USER2> Ah yeah, my bad, forgot I never set up my profile. Best email is email@example.com, my supervisor's email is in the paper, but best to contact me.

<comment><USER3> email sent. I might have up to 3 pairs for sale. I'll contact my buddies who I got into the program.

</comment></comment></comment><comment><USER4> If anyone from the Glass team happens to read this:

A very good friend of mine has an uncorrectable problem that basically gives him double vision all the time. I got Glass for him as a gift, and it changed his life. Emails, text messages, directions, all over a single eye so it was clear. Thanks for pushing a much needed update so he can start using them again.

<comment><USER5> I've got that problem; it's correctable either with prim glasses, or with surgery to tighten up some of the muscles that control your eyes

You can also do some practice with 3d pictures to build up better control. I made a thing for that that uses red/cyan 3d glasses. [http://web.uvic.ca/~jhedin/Other%20Work/tranaglyphs/](http://web.uvic.ca/~jhedin/Other%20Work/tranaglyphs/)

<comment><USER6> I have double vision due to an astigmatism that caused amblyopia. My optometrist said that the astigmatism is correctable with surgery or glasses, but I would need to train the eye with physical therapy to deal with the amblyopia which wasn't guaranteed to work since it wasn't detected early on in my childhood. I've never bothered since I'm so used to double vision it never bothers me. Have you had luck improving the double vision?

</comment></comment></comment><comment><USER7> I'm not sure a lot of people actually got to try google glass.

I'm loving (and developing in) VR, and interested in actual AR. Glass was a deadend as soon as I actually put one on.

I found it to be pretty much as if you were holding up a smartwatch beside one eye, that you could turn your eye and look at in focus.

There is no overlay of the real world. You are either looking at watch beside your eye or the real world.

The blurry screen was always kind of off to the side and annoying when wearing it.

Just as if holding a wristwatch up to the side of your head would be.

If that sounds bad to you, yes that's why it failed.

<comment><USER8> Yeah, I always got annoyed when the media kept referring to Glass as "AR", when in reality it was mostly just a quick way to get notifications and such without pulling your phone out of your pocket. If Glass counts as AR, so does my smartwatch.

<comment><USER9> "Notifications" is a bit of an under-sell for what a crappy text-screen that's by your eyeball can accomplish, when combined with a camera and microphone and bluetooth-paired to a phone.

Glass could (can?) do the Word Lens "translate what I'm looking at" thing better than a phone can—not in visual fidelity, but in fluency of use. It can also just let you read a book on the bus without holding your arm in front of your face. Neither of those are strictly AR, but nor are they things you could accomplish with a pager.

</comment></comment></comment><comment><USER10> I tried GG when I was working for Google at some event where the team came to your building and let interested people try it. I was quite enthusiastic about it before trying it, but actually using it for 5 minutes really turned me off. I think that this might be because I don't normally wear glasses. I found looking slightly askew to focus on the presented info was awkward for me (eg, maybe it was natural to somebody who wears bifocals). I also found the weight a bit unnatural.

To me, Android Wear was a much better fit for what I wanted from GG. Eg, notifications, navigations, music controls, email/text without having to pull out (and unlock) my phone. (and I hadn't worn a watch for 15-20 years before getting my first Android Wear device).

</comment><comment><USER11> GG would become so much more popular if it would aim at certain niches first, like security, technicians, doctors and public servants (partially the way Segway did) - it should invest in showcase apps that cater for those niches and build up market from there.

<comment><USER12> Last month a few eviction notices were served in my building. The guy who was delivering them was wearing GG, presumably to legally document that the notices were served.

<comment><USER13> You must live in CA.

<comment><USER12> NYC

</comment></comment></comment></comment><comment><USER14> I think what kept Glass from going through the roof was the camera.

The whole thing would probably be awesome in its own with just display, GPS and compass.

Many people feared for their privacy and the people using the Glass were considered douches because of this issue.

<comment><USER13> Yet none of those same people have an issue with taking their phone out of their pocket constantly and glancing at it which has... a camera on the front! But I could see the issue of never knowing whether or not the glass camera is recording and whether that recording is going to wind up on youtube.

<comment><USER15> You never know when the smartphone camera is recording either.

<comment><USER14> Wearing a Google Glass is like someone pointing a smartphone cam in your face all the time.

Yes, you get all the fancy AR stuff with camera, but I think you could still build a nice HUD without the cam.

</comment></comment></comment></comment><comment><USER16> The last two responses in this thread - industry applications (operating theatre) and medical use (double vision) - are the things Google should have focused on all along.

A tiny floating screen in the corner of your eye is most useful when:

1\. You can't readily access the screens that are in your pocket or desk.

2\. You need to look at a screen and the world around you at the same time. The screen may possibly overlay on the world around you.

<comment><USER17> I think that was the plan of the original team all along, but then Brin happened. It was him that orchestrated the whole stunt at IO to unveil it, driving the hype through the roof in the process.

</comment></comment><comment><USER18> NPR just did a story this year that it's being used in the manufacturing industry, so it's still being used, just not for leisure: [http://www.npr.org/sections/alltechconsidered/2017/03/18/514...](http://www.npr.org/sections/alltechconsidered/2017/03/18/514299682/google- glass-didnt-disappear-you-can-find-it-on-the-factory-floor)

<comment><USER19> TLDR it can find barcodes and scan them faster than the human eye can. Yeah fascinating.

<comment><USER20> "I don't have to leave my area to go look at the computer every time I need to look up something," Is a little more than just a bar code scanner.

Considering how important some seemingly minor assembly problems have been this is probably a lot more valuable than you might think as it reduces people guessing vs. going to the effort to look something up.

<comment><USER19> That's not a glasses advantage though. The smartphone in my hand does that (my smartphone, an overpowered barcode scanner)

<comment><USER21> A specially made hand held device could do it too, but it would still be a problem because you're using hands.

<comment><USER19> Could put it on your wrist, like QBs have. A fragile device on your head, over your eyes, still doesn't seem like the best solution.

<comment><USER20> Most safety equipment is designed for glasses and also works with google glass. Further, you want nothing strapped to you when dealing with heavy machinery not even a watch which means you would need to keep it in a pocket and use your hands to manipulate it.

PS: Even rings have cost many people their fingers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> Nice! I really like Google Glass, the only issue I have with it is the reduced battery life. I wish there were a supported way to replace the battery. Or is there?

<comment><USER23> I didn't replace the battery, but back when I used mine regularly I bought an external battery specifically made for it.

The company that made it still has its website up, but there doesn't appear to be a way to order. So they may be out of stock. But you could always try to contact them, I suppose.

In a similar vein, I guess you could always get an USB battery pack and a thin USB cable that's long enough to reach to your pocket. I don't think it's ideal, but it might be better than nothing.

</comment></comment><comment><USER24> Does anyone else get the impression that this might have just been an intern project* or similar?

Seems very odd for a seemingly minor iterative update to pop up out of nowhere after such a long time otherwise.

* The update, not Google Glass itself

<comment><USER25> I actually commented in the previous discussion about this update. (This post is technically a dupe.)

But my assumption is that someone at Google still uses their Explorer Edition, and fixed some pet peeves of their own to support newer Android phones better, maybe they added the keyboard input because they needed it, etc. And then just decided to go ahead and get it released to everyone because the work was already done anyways.

<comment><USER26> At Google you just don't get something released to the public, let alone to people that paid for a device which an update could brick, on a whim. Even if someone outside the Glass team did all the code changes, they would need someone on the inside with enough permissions to actually sign and push out the OTA images.

I suspect this is a backport of work that was done to support the new Glass for Work program.

(I used to work at Google, on teams other than Glass, although I know former members.)

<comment><USER25> My comment perhaps could've clarified that there was likely some bureaucracy involved in release. I wouldn't even be surprised if my hypothetical Explorer Edition user was a member of the original (or current) Glass team. But likely that it was more of a 20% thing than their job.

But I am dubious this has to do with Glass for Work, because Enterprise Edition has been out a long time, and surely has had updates long before now. It's unlikely that Enterprise Edition is still built on the archaic platform Explorer Edition is built on (Android 4.x on an OMAP processor that was already old when Glass was first released). And there is little to no reason I can fathom for Google to expend Glass for Work resources on backporting fixes to a device that's been abandoned for over three years.

</comment></comment></comment></comment><comment><USER27> It's been used in medical fields for quite some time. Technology exists outside of the consumer space but I guess the popular press likes to ignore that.

</comment><comment><USER28> A bit of historical context. Glass unofficially supported Bluetooth keyboards up to version XE11 (that is, November 2013). Version XE12 contained one major bug which, while it didn't break keyboards themselves, did break most of the non-Glass Android apps you'd want to use a keyboard to control. Version XE16 was a four-month rewrite, which replaced the Bluetooth stack with one that couldn't handle keyboards (and bricked a lot of devices and broke a lot of other things.) At that point something went very very wrong with Google's internal politics, and despite there being both internal and external demand, work to repair keyboard support was blocked in favor of fixing crash-bugs. Combined with Glass being closed-source, an overly-aggressive auto-updater that made it hard to stay on XE11 or XE12, increased memory usage that exceeded what the existing units had, and poor communications from Google, this caused the Glass community to turn on Google and become hostile.

Three years later, version XE23 adds support for Bluetooth keyboards, and makes it more official (so you don't need an awkward procedure involving sideloading parts of cell-phone Android).

So I interpret this a sort of three-years-later apology. For which, thank you, it's overdue but is a nice gesture. Source code would also be nice, as would a public post-mortem of what the whole mess looked like from Google's end.

</comment><comment><USER29> I'll have to dust off my glasses and install this. I never got the hang of it because the screen is about 1/2 cm too high for me so I have to uncomfortably force my eye to look straight up. No matter how I tried to position it on my head I always had that issue...

There was also the whole thing about people thinking you're an ass for wearing one. And they are very rare in New Hampshire where I am so they stick out like a sore thumb.

<comment><USER30> If it's too high, try widening the nose pads a bit. That's what usually sets the height of glasses on your face.

<comment><USER29> > If it's too high, try widening the nose pads a bit. That's what usually sets > the height of glasses on your face.

Thank you for the advice.

Trust me, I have. Many times and many ways. It helps (a lot) but it is still too high. What does fix it is raising the arms it up so they aren't directly on my ears. But there is no way to keep it in that position.

<comment><USER30> Odd. The screen must be a noticeable bit in front of the nosepads then, to use them as a pivot that lowers the screen.

Can't wear them further down your nose (re-bending the ear hooks if necessary)?

I realize you've probably tried it (sorry!), so feel free to ignore my suggestions, but it's triggered one of those "there must be a solution!" quirks I have.

</comment></comment></comment></comment><comment><USER31> I'm kinda sad I never took advantage of their invite to buy one. Would have been a cool piece of Google history to have sitting on a shelf.

<comment><USER32> It was going for $1,500 at the time, making it a particularly expensive thing to have bought as a conversation piece. The price was a serious flaw in Google's rollout strategy, perhaps more than anything else. They were trying to do a small alpha/beta, while also marketing the product as "cool" and exclusive at the same time.

The product was _very_ very very MVP and alpha-like, but came at a finished- product price tag. I have to imagine that this strategy reaulted in a very small and non-representative test cohort of wealthy tech geeks in the Bay Area. Many of them no doubt purchased Glass as an in-crowd signal, with little serious intention of dogfooding the product or developing for it.

Hardware at that pricetag can't just be soft-launched like software. When you charge $1,500 for a device in basically v0.1, you're setting people up for disappointment.

<comment><USER33> It's reasonable and expected for early stage hardware to be much more expensive than a later mass produced piece; both on the cost side and on the demand side.

If you release a v0.1 bleeding edge device, your per-unit costs are huge, and you also target it at people who _really_ need or want it's specific functionality, and thus aren't price sensitive.

For any class of such technology the price comes down only when the tech is tested and mass produced. If anything, they should have sold it at $3000 or $5000 to get more feedback from its use as a small alpha/beta in practical niche domains where it's really needed, not as a consumer device used as a fashion item instead of testing its practical application.

</comment></comment></comment><comment><USER17> For all this talk about recording everything, don't the Glass sport a bright LED up front when the camera was in use?

<comment><USER34> Do snap's spectacles?

<comment><USER17> Thing about them is that you have to manually reach up and press a button, and that records 10 seconds.

Maybe they can be modified to record continually, but up front they are much more limited than Glass.

<comment><USER34> Glass was never always-on recording. Yes, you could wink to take a photo and not use your hands, and yes by touching it _multiple times_ you could start recording and even have more than 10s.

But they were never a "life recorder", just like I assume Spectacles aren't. Still Spectacles are not getting creep-accusations and hate, as far as I can see.

There are life recorders though. They've also not gotten the hate Glass got.

</comment></comment></comment></comment><comment><USER35> Yeah, mine suddenly started working again. It got stuck in a weird loop a few months ago. I don't think I have an update but I think they fixed an oauth bug.

</comment><comment><USER36> On a lighter note, people complain about google over updates. See they are not bad!

<comment><USER37> People are incorrectly complaining about google when they should really be complaining about the OEMs. You can blame google for that business model but generally they aren't deciding when Android phones get updates.

<comment><USER25> This is incorrect. People are often complaining about the OEMs, when you really should be blaming Google. Google designed the way the OS handles updates, and it also sets the terms that OEMs have to agree to in order to sell Android devices with Google Play Services included.

Google controls the entire table here. But they want you to blame all of the different OEMs rather than looking at the real culprit in the middle of all of them.

<comment><USER17> Samsung has Tizen sitting in the wings if Google gets too pushy. HTC would not hesitate to make a deal with Microsoft. LG owns WebOS, and is actively using it in their smart TVs. Huawei, ZTE and such can just fall back on Chinese infrastructure.

The only ones that would be affected would perhaps be Sony, this new Nokia that's rising, and various white box manufacturers.

Google really do not have as much control as one would think.

<comment><USER25> Any OEM doing this except maybe Samsung would immediately go out of business. Feel free to let me know if you ever have a practical example of someone successfully leaving the Android monopoly ecosystem and not falling flat on their face.

Also, bear in mind, OEMs have no reason to object to Google controlling updates. They'd still be able to customize the experience with apps and themes. And they'd save boatloads of money as Google handled all the update testing and distribution.

Of course... Google doesn't want to pay for that, and that's why they leave it on OEMs.

</comment></comment></comment></comment></comment><comment><USER38> Three years later and I still find the idea obnoxious and pandering to the unseen apparatus of encroaching social control.

<comment><USER39> I don't think it's that much of an issue if each person has a video record of stuff they've seen. I mean, we already have this in a squishy lossy human way.

Where I do think it's an issue is when every person's viewpoint is piped back to the Borg mothership.

<comment><USER38> I think it's suicidally bad for this to become the default norm for human interaction. Among strangers it's a horrible idea, and among loved ones, a thousand times worse.

If social interaction has begun to feel rigid and sterile already, this sort of thing represents a deep freeze beyond anything we've ever experienced.

Everything points to confession and contrition now. Emotions become bottled and pressurized. Stiff behavior modification leaves no release valves.

Go ahead and experiment with this, if you don't believe me. I'll check out, without hesitation. I'll take my business elsewhere, anywhere.

<comment><USER40> The Black Mirror episode about exactly this got it right, I think.

Forgetfulness is a blessing!</comment></comment></comment></comment>


Don't blame performance on language, first review your approach - <AUTHOR> https://blog.timmeey.de/performance-issues-blame-yourself-first-blame-the-language-later/ <comment><USER2> tldr should have been up front: "before you rewrite an algorithm from your favorite high-level language to C, check whether the problem really is in the language or not"

In other words, concentrate on algorithm, good code, and learning which library functions are available (which are probably written in C/C++). Good advice for anybody. Conversely, just because it's written in Fortran/C/C++ doesn't mean it's optimal. Same rules apply.</comment>


Let's Recognize How Fast We're Moving - <AUTHOR> https://medium.com/@kylry/let-s-recognize-how-fast-we-re-moving-e3a8d56fbfae#.h1r645gko <comment><USER2> This article has an "exponential" graph that has a non-exponential "kink" _just_ past where we are, to give a completely unwarranted and misleading idea of how things are "just about to really take off". That graph is a repeat from other articles by the same author. He's smart enough (I presume) to know that it's bogus, yet he keeps using it. I suspect that he does so because it's a good way to sell his ideology.

</comment><comment><USER3> That was the scariest and the most unsettling thing I've seen for a while.

Don't take me wrong -- we're at a great spot now.

But can this continue? Or at least remain? Or can the same forces that brought exponential growth eventually cause exponential decline?

I just don't think exponential growth and stability go hand in hand.

<comment><USER4> GDP will become increasingly diverged from technological progress and standard of living I think, though it's quite a poor metric even now.

Mobile phones getting internet access doesn't show up for example. Software mostly shows up as productivity improvements, advantages in the personal sphere are ignored. Economic gains from growth increasingly going to few oligarchs doesn't show up either. Even longer life is interpreted as a minus: Longevity and longer retirements show up as expenses.</comment></comment>


iTerm2 Leaks Everything You Hover in Your Terminal via DNS Requests - <AUTHOR> https://www.bleepingcomputer.com/news/security/iterm2-leaks-everything-you-hover-in-your-terminal-via-dns-requests/ <comment><USER2> There was another thread on HN about this issue, wherein the author of iTerm2 immediately responded with a new release that fixes this issue:

[https://news.ycombinator.com/item?id=15286956](https://news.ycombinator.com/item?id=15286956)</comment>


Indian Politician Arvind Kejriwal Wins TIME 100 Readers' Poll - <AUTHOR> http://time.com/73538/indian-politician-arvind-kejriwal-wins-time-100-readers-poll/ <comment><USER2> This article may not seem relevant to most on HN (especially non Indians), but this is an outstanding case study that shows hacking, marketing & bootstrapping in an altogether different realm. The political party founded by Arvind Kejriwal (an IIT graduate & an activist) - Aam Aadmi Party (common man's party) went from zero to near majority in a year in the capital of India. It was fully funded by a transparent donation campaign. Arvind served as the chief minister of Delhi for a little less than 2 months. Within a few months, they have gone national - fighting the world's biggest election from almost 80% of the constituencies (I guess that's more than any standalone existing party). Time will tell if they've moved too fast or will people embrace them.

However what's worth admiring is the tenacity of Arvind Kejriwal with which he's fighting against crony capitalism & corruption & bootstrapping for an election where the total budget could be in billions of dollars (double digit).

P.S. Obligatory thanks to twitter that has been a source of unbiased news when all local media has blacked out the fight against corruption.

<comment><AUTHOR> Good explanation

</comment></comment><comment><USER3> That is fascinating! AK & NaMo at the top signifies the importance of the current political scene within India.

<comment><USER4> Maybe not, considering the rest of the top 10:

 _Rounding out the top ten finishers after Kejriwal and Modi were singer Katy Perry, singer Justin Bieber, actor Laverne Cox, actor Benedict Cumberbatch, singer Beyoncé, actor Jared Leto, actor Lupita Nyong'o, singer Lady Gaga and music duo Daft Punk._

More like there are a large number of Indians and people there still think _Time_ is a serious news publication, whereas in the US it is not taken seriously.

<comment><USER5> So its a kind of Joke in US?

</comment></comment></comment><comment><USER5> I hope Kejriwal/Modi brings a change to India

<comment><USER6> Aside from both being very successful and dynamic leaders, there's a world of difference between them.

Kejriwal represents a secular future for India that has clean, effective institutions.

Modi, whatever his other admirable qualities are, is an instigator of communal violence and represents a rejection of a cosmopolitan, tolerant, multicultural society.</comment></comment>


Musk's Tesla Fun Does Not Amuse SEC - <AUTHOR> https://www.bloomberg.com/view/articles/2018-09-28/musk-s-tesla-fun-does-not-amuse-sec <comment><USER2> As funny as this opinion piece is, it is still just that: an opinion piece.

I highly suggest people read the SEC filing for yourself, without bias, if you want to see the SEC's point of view on this.

With that being said, this opinion piece collates a bunch of news that happened yesterday, and can provide context to what is going on. But I still feel like the SEC's filing is the best primary source document to this TSLA news event. Besides, the "meat" of this opinion writer is purely copy/paste quotes from the SEC document.

[https://www.sec.gov/litigation/complaints/2018/comp- pr2018-2...](https://www.sec.gov/litigation/complaints/2018/comp- pr2018-219.pdf)

<comment><USER3> The complaint of one party in a lawsuit is _not_ the best primary source. The whole purpose of it is leaving you with the impression that the defendant brazenly committed all the charges.

</comment></comment><comment><USER4> 'Alright so here's the gameplan:

1\. Elon removed as CEO by SEC order - can't be CEO of a public company

2\. Tesla stock drops 50%

3\. Tesla stock becomes so cheap they take it private

4\. Musk reinstated as CEO'

[https://twitter.com/AustenAllred/status/1045554529914089472](https://twitter.com/AustenAllred/status/1045554529914089472)

<comment><USER5> I am inclined to believe that he was just putting the '420' number with a dollar sign in front of it just to amuse his girlfriend, as per the BBC reporting.

Motivation is not in the sensible world, there is no gameplan beyond impressing the lady. There is a rich tradition of this in Silicon Valley. Whole companies are built just to impress a lady.

<comment><USER6> The infantilization of tech CEO culture could at least be explained by the ubiqiuity of college-aged founders. And yet I can't think of a single one that did something so obviously ill-advised, and tried to play it off as "it was just a joke bro".

For a frame of reference, look at the difference in Zuckerberg's public statements as CEO today vs those he made as an obnoxious techbro CEO at age 20.

Musk is close to 50 years old. Are we to believe a man of his age thinks a 420 reference would make his 30yo girlfriend laugh?

<comment><USER5> 50 years old is mid-life crisis time. If his girlfriend has already seen enough of capitalism then upsetting wall Street might just be a naughty thing to make her laugh, if wrapped up in a 420 reference, worth it for two minutes even if costing billions. These things happen when mid-life crisis strikes some people.

People in their twenties that get thrust into the limelight generally do defer to some more sensible babysitting advisers, as per the Google deal with Schmidt. The handcuffs are on as far as money and share valuations go with the junior crowd. It is the 'responsible 50 year old adults' you need to worry about.

</comment></comment></comment></comment><comment><USER7> One defense might be the admit fault apologize beg forgiveness route. I was working to get funding, was too optimistic, accidentally used some poor phrasing in announcing my plans, etc. we've hired a new compliance officer to review future communications for misleading statements.

Another strategy would be to lean over the desk, pluck a quarter from behind the ear of the SEC investigator, slam it on the desk, and announce "see that, muppet? I do that 100 billion more times and I've got all the funding I need."

Choices, choices.

</comment><comment><USER8> It's very hard to read these articles when dynamic ads are injected and then removed 30 secs later causing me to lose my place. Terrible.

</comment><comment><USER9> Could Musk just get this over with and pay back whomever lost money on this? It might be worth it for him to keep his position.

Edit: Ouch, I was only halfway through the article when I wrote this, but just noticed it was mentioned after.

<comment><USER10> He reportedly tore up a settlement at the last moment. Fireworks!

<comment><USER11> The settlement required him to step down as chairman for two years and let someone else run the company.

<comment><USER12> Isn't the chairman position just part of the board of directors? I think he would have still been CEO with the agreement. If the SEC wins now, he won't be able to serve as CEO.</comment></comment></comment></comment>


Ask HN: In Microservices, How updates/upgrades of software tools are handled? - <AUTHOR> we use lot cloud native frameworks and many are actively developed in open source. Which means they rapidly update to newer versions and/or change their design completely with breaking changes. How does a mid-sized team keep up with the pace and still deliver their product features. what are the best practices your team follows ? <comment><USER2> It may be the case that a given tool/framework doesn't offer enough value in return to the cost of maintaining it, particularly if it is making breaking changes that your team is forced to consume for some reason.

What happens if you cut the dependency and stop using the tool/framework? Is there an alternative that is much less costly to maintain?

</comment><comment><USER3> > Which means they rapidly update to newer versions and/or change their design > completely with breaking changes.

Do you have any examples? Most tools should provide a transition path that should ideally be painless but provide thorough documentation on how to upgrade when major changes do occur (which shouldn't be often). If you're seeing constant change you're probably using tools that aren't stable yet.

</comment><comment><AUTHOR> Is no one facing these issues ?</comment>


Show HN: Finchly - Peer editing made easy - <AUTHOR> http://finchly.com

<comment><AUTHOR> Hello! I'm the 16 year old founder of Finchly, <http://finchly.com> , which should be live by the end of this weekend. I entered the Next Teen Tycoon Challenge, to get some seed money to upgrade the servers, advertise, etc... To vote, go to <http://finchly.com/vote> . If you have any questions or comments feel free to email me at fouad [at] finchly.com.</comment>


Why OO Matters in F# - <AUTHOR> https://eiriktsarpalis.wordpress.com/2017/03/20/why-oo-matters-in-f/ <comment><USER2> I have recently given a talk that includes a comparison between OOP and parametric / higher-kinded polymorphism, the hope being to help people choose the proper abstractions in a hybrid language like Scala.

Title is "Functional Programming Inception", slides available at: [https://alexn.org/blog/2017/03/15/fp- inception.html](https://alexn.org/blog/2017/03/15/fp-inception.html)

Basically:

\- OOP is about _information hiding_ and not just when speaking of data, but also when speaking of types, so OOP is about hiding information at the type level. Thus OOP is also really good at heterogeneity, Liskov substitution principle and all that

\- Parametric polymorphism is compile time, nothing gets deferred, types are very explicit and higher kinded polymorphism is about _composition_ , with plugged-in types altering the capabilities of built instances dramatically ... in other words, it's a very different beast

In regards to F#, the problem is that in absence of OCaml functors and Haskell type-classes, plus due to lacking higher-kinded types, you're left with OOP for building abstractions. And in terms of OOP, without interfaces that can have default implementations or higher kinded types for that matter, it's not that good as an OOP language either.

<comment><USER3> An insight I found quite interesting:

oo style is great at extending types. You can add a subtype at a later date without modifying existing code and it just works.

Functional style is great at extending behavior. You can take an existing type and implement new functions on it. This means you can have a lot of functions defined on a basic data type which is amazing for composition but you can't add a new type that works with the same methods if you didn't anticipate this need.

<comment><USER4> This is called the expression problem.

[http://homepages.inf.ed.ac.uk/wadler/papers/expression/expre...](http://homepages.inf.ed.ac.uk/wadler/papers/expression/expression.txt)

[http://stackoverflow.com/a/2079678](http://stackoverflow.com/a/2079678) is a great SO answer on this topic.

<comment><USER5> The expression problem has a complete and rather elegant solution in mainstream OO languages with generics, invented in 2012 called object algebras:

Video: [https://www.infoq.com/presentations/object- algebras](https://www.infoq.com/presentations/object-algebras)

Paper: [https://www.cs.utexas.edu/~wcook/Drafts/2012/ecoop2012.pdf](https://www.cs.utexas.edu/~wcook/Drafts/2012/ecoop2012.pdf)

I understand that there is a comparable solution in FP languages called finally tagless interpreters: [https://oleksandrmanzyuk.wordpress.com/2014/06/18/from- objec...](https://oleksandrmanzyuk.wordpress.com/2014/06/18/from-object- algebras-to-finally-tagless-interpreters-2/)

<comment><USER6> Vesa Karvonen posted a complete solution in SML here[1] (but LtU seems to be down so the link doesn't work), which I transliterated (directly, not idiomatically) to F# here[2].

[1] [http://lambda-the-ultimate.org/node/2232#comment-31278](http://lambda- the-ultimate.org/node/2232#comment-31278)

[2] [http://fssnip.net/gn](http://fssnip.net/gn)

</comment></comment></comment></comment></comment><comment><USER7> Enjoyed the article. My personal battle with f# has always been searching for what is idiomatic. Everything feels a little bit foreign when you write something in f#. One of the responses the author leaves in reply to a comment is something that I found important the more I used f#, and is something that never really gets said out loud.

"Bottom line: people need to embrace the fact that F# is a hybrid language, and that the primary motivation for using F# is the .NET platform. People interested in FP but not in .NET should just try SML or Haskell. Claiming that F# is "up there" with Haskell or SML is false advertising and ultimately deals unpleasant surprises to people coming either from .NET or Haskell backgrounds."

f# needs to find its place not only in the FP world, but also in the .NET world. That's a very hard thing to do. The language is fun, and I hope it finds its way.

<comment><USER8> I tried to learn FP by doing a project with F# but I felt like I was writing C# code with a different syntax. I would like to give FP another go with a purely functional language but then you also need libraries that enforce that approach. The .Net framework will always lead you to an OO approach.

<comment><USER9> What I found is that it took me about three tries to actually grasp functional programming. My first F# project started out the same way yours did. It was really OO in an F#. Once I looked at it, I started to realize that it was not the language, but my approach and changed it to fit the FP approach.

</comment></comment></comment><comment><USER10> I've been thinking and reading about OOP and its roots recently.

Here are some interesting resources on the subject:

Alan Kay's elaboration on what he envisioned when he coined the term:

[http://userpage.fu- berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay...](http://userpage.fu- berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en)

Two papers he references:

[https://www.rand.org/content/dam/rand/pubs/research_memorand...](https://www.rand.org/content/dam/rand/pubs/research_memoranda/2007/RM5290.pdf)

[http://repository.cmu.edu/cgi/viewcontent.cgi?article=2281&c...](http://repository.cmu.edu/cgi/viewcontent.cgi?article=2281&context=compsci)

Cool article on failures of OOP:

[http://www.smashcompany.com/technology/object-oriented- progr...](http://www.smashcompany.com/technology/object-oriented-programming- is-an-expensive-disaster-which-must-end)

Its long and frustrated, but most of the points he makes are true. A lot of the stuff people claim as

I think the original vision of OOP is more valuable than what we call OOP right now. I think a good balance would be writing low-level stuff in functional style and then wrapping it in objects when you need state and cross-library messaging. Also, it seems there is some overlap between the original vision for OOP and what we call "microservices" today.

</comment><comment><USER11> Mirror of my question from Reddit:

Don't classes cover a full superset of the functionality of ML-style functors? I have yet to find a functor-dependent construct that can't be mimicked with them, and I've found plenty of use cases of classes that can't be mimicked (or at least not without hacky workarounds) with functors. And yet it seems common for FP style programmers to lament the lack of functors in F#, but will consider it a codesmell to use classes. Am I missing something here? What does a functor do that is so taboo to do with classes?

<comment><USER3> You might be misunderstanding functors since they are basically tangential to classes. Every generic class `F<T>` where we can lift functions `T -> S` to `F<T> -> F<S>` is a functor.

Think of lists as example, they are generic over a type and we can apply functions over the base type by applying them to each element.

Functors are a basic building block of category theory. Category theory is basically the essence of composition so using functors leads to easy to reason about and extremely composable code. This also extends to things that build on functors like monads.

<comment> pseudonom- ML uses "functors" in a different sense than e.g. Haskell.

</comment></comment></comment><comment><USER12> Whatever we call it, e.g "OO", inversion of control, dependency injection, polymorphism, function pointers, ...

This can all be summarized in one question: "can old code call new code?".

This is required to build a proper modular architecture (and BTW this paradigm is used by lots of C projects like the Linux kernel, VLC, ffmpeg, GPAC).

This doesn't go against the fundamental principles of FP ; as long as the type system of your language doesn't need to know "all" types (i.e including the ones you're going to your project later).

<comment><USER13> This is why I have generally moved to contract-oriented programming with dependency injection. In C# and Java this manifests as interfaces. In Rust they would be traits. I believe Haskell type classes would serve the same function. So, you can call new code from old code fine, as long as your new code implements the contract.

This was really based on the realization that the Liskov substitution principle effectively mandates that every object type is an implicit contract. Not breaking that implicit contract in polymorphic code is what LSP is about. So then the question becomes, why not just use the construct that directly corresponds to a contract instead? That way you can reserve polymorphic constructs for actual identity (IS-A) relationships and cleanly maintain SOLID principles.

EDIT: Reading a bit further down to romaniv's comment [0], I think this is possibly what Kay discusses as the ADT approach. I've never heard of that before, but based on the Wikipedia article it seems to fit the bill?

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

</comment></comment><comment><USER14> OO in F# looks like fusion of multiple concepts into one:

\- Ad-hoc polymorphism

\- Infix function application syntax (foo.append bar instead of append foo bar)

\- Product types with named members, records (class members, note that language already has records)

\- C# FFI

So I'm not a fan of this "multiple responsibility" approach. For example, you can't use ad-hoc polymorphism unbundled from OOP classes. You can't use records with OOP because it's not bundled into OOP and it has its own records (class members).

"Canonical" OOP should be about message passing and not all these things.

<comment><USER15> Are you aware that records are part of OCaml, which combines with functional programming with OOP, similar to F#? [https://realworldocaml.org/v1/en/html/records.html](https://realworldocaml.org/v1/en/html/records.html)

</comment></comment><comment><USER16> I don't think annonymous functions have anything special to do with FP or OO for that matter. Maybe someone can fill in on this?

In my mind, functional programming is about programming with mathematical functions - Purity - No arbitrary effects being thrown around - Input to output... Ba-Da-Boom-Ba-Da-Bing.

I find this much more valuable as a restriction from the runtime than as a guideline that can be ignored whenever deemed convenient.

That being said, I wouldn't have a job if I couldn't compromise on this :(

Is there any way to enforce some purity in F#? Does the type-system annotate effectfulness?

<comment><USER12> > I don't think annonymous functions have anything special to do with FP or OO > for that matter. Maybe someone can fill in on this?

Anonymous functions are of no use until functions are first-class citizens (otherwise, there's no way to call them!), and this has always been the case in FP languages.

I do agree though that the focus on mathematical "purity" is a much more defining characteristic of FP.

<comment><USER17> Closures were an integral part of Smalltalk's design.

And functions as first class citizens is not a particularly high bar. I mean, C has higher order functions.

<comment><USER16> I'm excited to use higher-order functions in C someday :)

<comment><USER17> You can do that now. Higher-order functions are simply functions that can take other functions as parameters or return them as results. C has been able to do that since forever. It's not something fancy: pretty much every programming language has something along these lines.

What is rarer is closures, but that's a different concept. You can have higher-order functions without having closures.

<comment><USER16> Haha - I'm simply stating that I'm excited to do it and not for it to be possible :P

</comment></comment></comment></comment></comment></comment><comment><USER18> _The thesis of this article is that strategically admitting elements of OO in an F# codebase significantly improves quality and maintainability....In my 6 years of working with F#...I typically write the implementation of a large component in the functional style behind a private module, then expose its public API as part of a standalone class._

I've been coding with F# since it came out. I don't claim to be a guru, but I've coded in various production environments, both self-architected and part of a larger group.

I write pure functional first and then refactor and abstract as necessary. I have also decided on a policy of pure microservices: stand-alone small units of functionality joined, tested, and deployed by the environment, not other toolsets.

I try to keep a completely open mind about rolling my own objects. I'm an old OO guy, I love all things OO.

Sadly, keeping to these simple principles, I find no need for objects.

At first I did. Then I got better. I keep looking for them to crop up. Instead, what happens is that I write my microservice production code in the domain language, with lots of descriptive parameters and methods. Then, as a I refactor, the code splits into "neat stuff that should be part of the type system" and "some construct that's actually solving the problem I want to solve"

So I end up with a very small amount of domain-expressive code written using symbols that are either in the type system or should be.

I'm done. That's it. Repeat and rinse -- keeping, of course, that small bit of code that actually got refactored out for re-use. This code will live in a Types.fs file. I share this file among projects.

I could be more blunt. _There are no components_. Once you start thinking in terms of components? You've already decided you want to use OO. There's nothing wrong with that, just don't engage in circular reasoning. If before you begin you've already decided to use OO concepts, then you're using OO concepts. F# has nothing to do with anything.

I'm still waiting for some good examples, and I'm trying to stay open-minded about it. So far, though, I haven't seen the need for them. This essay didn't change anything.

</comment><comment><USER19> Interesting how the author avoids to mention OCaml's (far from perfect, but still) object system.

<comment><USER20> And how F# was made by OCamlers.</comment></comment>


Let's build a webinar tool that doesn't suck - <AUTHOR> http://survey.getgrasp.io

<comment><USER2> Tells me basically nothing about the product. Wants email address.

I see this trend far too often.

<comment><USER3> Maybe some "startups" using this technique to harvesting email addresses. But in this case, we need the email to inform about the current progress and select future beta users. We know the problem with this kind of landing pages, but this is a good way to proof the concept, acceptance, get feedback and work together with future customers.

<comment><USER4> _...we need the email to inform about the current progress and select future beta users._

So why don't you hint about it in the landing page?

My process was:

      1. Open the page
      2. Saw "build your own webinar tool"
      3. Saw email field
      4. Saw join button

and thought: "If I enter my email in this box this will give me access to some kind of personalizable webinar tool, but I don't know if I need this yet", then closed the page.

You need to rework the landing page so the visitor knows what they are doing exactly when they click the "JOIN NOW!" button.

</comment></comment></comment><comment><USER5> I think you might need to come up with a different term, because my brain's finding it too hard to imagine "webinar" and "not suck" together. :)

<comment><USER6> Yeah that's what i thought too... But it's harder to find one than using a existing term that sucks :)

</comment></comment><comment><USER7> let's stop using the word webinar

<comment><USER6> Any better ideas?

<comment><USER8> Semineb.

</comment></comment></comment><comment><USER9> They never say what's wrong with existing products. I'm sure they aren't perfect but they do the following:

Everyone is familiar with them

They're reliable and scalable

They're cheap for the presenter to use

They have clients for Mac, PC, iDevices...

<comment><USER10> > Everyone is familiar with them

I would say that "most people" never used "webinar" software, so everyone doesn't really cut it here.

> They're reliable and scalable

My last experiences where rather on the other side - Hangout often crashes on me and gotomeeting had problems with audio quality.

> They're cheap for the presenter to use

What is cheap, if they don't really work for me?

Also, they mostly are general video calling solutions and rarely geared towards running e.g. a workshop.

> They have clients for Mac, PC, iDevices...

Yep, but there is always a plus to established players.

In general, I think that the whole webinar space still has a lot of ground to cover, so new players are always welcome.

</comment></comment><comment><USER11> There is a german startup around my corner that already delivers unsucky webinar tech: [http://www.slidepresenter.com/en/](http://www.slidepresenter.com/en/)

@alex_ka - maybe you should have a talk with them …

</comment><comment><USER12> It's redirecting me to the German version ([http://survey.getgrasp.io/de](http://survey.getgrasp.io/de)), not a great way to welcome traffic from The Netherlands... :)

<comment><USER3> It redirects you depending on your browser language... Maybe a bug! Here is the en version: [http://survey.getgrasp.io/en](http://survey.getgrasp.io/en)

<comment><USER13> Redirects me to the DE page as well (and it shouldn't), pretty strange bug.

<comment><USER3> Where are you from? Maybe you can give me your browser lang code from [http://aruljohn.com/lang.php](http://aruljohn.com/lang.php) That would be great :)

<comment><USER14> You probably redirect based on the first found locale. Most Dutch users browser with an accept language similar to "nl,en-GB;q=0.8,en;q=0.6,en- US;q=0.4".

If you only match on the first ("full") locale and not paying attention to the lower q-valued locales, you might think English is not accepted and you will redirect to your (default?) German site. It's a pretty common bug in locale detection systems (as I designed a few ones myself) :)

</comment></comment></comment></comment></comment><comment><USER15> Here is similar one : Big Blue Button ([http://bigbluebutton.org/](http://bigbluebutton.org/)) is an open source web conferencing system for distance education.

<comment><USER10> Ever had a close look at it? It is pretty much a mess tied together with duct tape. I've been sifting through it for a month and finally decided that you cannot use it to build a product on top of that.

<comment><USER16> Yep, I tried it last week. It still requires Ubuntu 10.04 and from what I can see isn't very portable to other distributions.

</comment></comment></comment><comment><USER17> Adobe Connect is a Webinar tool that doesn't suck.

<comment><USER18> It uses AIR right? Then... it kinda sucks. Ask any long-time League of Legends player about the client (made in Adobe AIR) you'll know what I mean.

<comment><USER19> I am a long-time player and while yes, the client has problems I think it's not AIR's fault. AIR is fine, maybe not perfect but it's not a good enough reason to ditch all the apps that are made with it. It's like saying "I will not browse any website made with PHP".

</comment></comment></comment><comment><USER18> Okay. I filled-in the survey. Will be waiting for the beta.

<comment><AUTHOR> Thx! We'll keep you up to date!</comment></comment>


A month with Dell's Project Sputnik - <AUTHOR> http://mattspitz.me/post/44202150125/a-month-with-dells-project-sputnik <comment><USER2> Reading this makes me want to keep developing on a MacBook. I love Linux, but when I'm reminded of all the wasted time and hacks spent on configuring hardware and researching problems, it makes me happy to stay trapped with OSX.

<comment><USER3> On a new Lenovo laptop, the configuration hackery was rather limited: \- disable UEFI and use BIOS \- install Debian (wireless didn't work during the installation, but worked without a hitch afterwards) \- copy-paste a script for decent powersaving settings (might have worked out of the box with KDE or GNOME, but I don't use desktop environments)

The only thing which does not work at the moment is most of the special function keys, which is no big deal for me as I don't really use the functionalites anyway.

<comment><USER4> Here's my OS X configuration script:

<comment><USER5> I've done nothing to make sure all my hardware worked on my favorite flavor of linux. My special keys also worked out of the box.

In addition I've spent exactly 0 minutes in the last 5 years figuring out hardware issues. You may have less success if you want to game or need 4+ monitor support; However I've been very happy in recent years with hardware support. There is literally nothing I've encountered in popular hardware that caused me any issues.

</comment></comment></comment></comment><comment><USER6> _"...Unity is horribly inefficient with screen space, and getting anything done requires a ton of mouse clicks and waiting for menus to load."_

Screen space: The launcher can be set to auto-hide, giving you the same amount of space you'd have on OS X with an auto-hidden dock.

Mouse clicks: Unity actually impressed me with the amount of attention they paid to keyboard use. Hold down the Super key and you'll see all of the shortcuts. It also makes application menu items searchable without a mouse.

Waiting for menus to load: 12.10 and earlier have been terrible about that. I'm running 13.04 (the next version in development) and they've made it much better.

<comment> chao- I have to take issue with your comment on keyboard use, because that single wart is dealbreaker keeping me from using Ubuntu.

I give Ubuntu another shot every X.10 release just to see if they've finally made the desktop environment satisfactory, and I must say they are getting _really, really_ close. The Menu system is getting close to making sense in Unity, Pulseaudio throws fewer temper tantrums, significantly less hardware issues, and everything is much snappier (especially compared to memories of Unity from its Ubuntu Netbook Remix days).

But I can't customize my keybindings for crap.

And you're probably thinking "That's BS, of course you can! It's under [submenu] of [menu] of [option] of [settings application name]." And you'd be right. It's just that some subset of keybindings will reset to their defaults every time you do a full power-down of the computer. Rinse and repeat until they're all back to their defaults.

It varies which hotkeys will be reset. Sometimes Metacity ones will reset. Sometimes GNOME bindings will reset. Sometimes opening the Unity configuration will reset the Metacity keys. Sometimes it doesn't! I even wrote a shell script to run all the proper `gsettings set org.gnome.desktop.interface [blah]` incantations upon login, but when that didn't work reliably (again: Metacity keybindings vs. Unity appeared to be the problem) I gave up.

This has been my experience in Ubuntu 11.10, some mid-2012 version of Mint (with Cinnamon) and Ubuntu 12.10, so it's not strictly Canonical's fault. However they haven't seen fit to address it in their user experience, and so I portion out a slice of the blame for them.

<comment><USER7> Great bug report :) Hopefully someone from Canonical will see this, and can send it to the appropriate people!

<comment> chao- It is not a great bug report. In fact, as qznc states, it's not a bug report at all. However, in my weeklong attempts to deal with the issue, I came across a few formal bug reports submitted to various projects.

If I recall correctly, and since the issue is a fight between two different application components that wish to manage keybindings, the bug reports had responses of the _"It's not our fault, it's the other package!"_ variety.

</comment></comment></comment></comment><comment><USER8> Dell Laptops are really very confusing with the fn key. My inspiron required me to press fn key and f4 so it works as if you just pressed f4. If I simply press f4, the screen brightness reduces. Very inconvenient!

<comment><USER9> Is it similar to how the function keys in Macbooks work? If so, I would consider it a feature. I have to tweak screen brightness more often than I need to press F4.

edit: I forgot that in Windows, F4 is a very important key (Alt+F4).

</comment></comment><comment><USER10>
      Just find a way to run `synclient MaxTapTime=0` when your X session starts up, and you should be golden.  This just disables tapping the trackpad to click, similar to how a MacBook's trackpad behaves.

I want his babies for this - I have just "lived with it" on every laptop for years simply because I was too lazy to dig into the hell of X and drivers and docs. But now I see the light

<comment><USER11> recent gnome3/unity and gnome2 since forever: settings > mouse (or "mouse and touchpad" in unity/gnome3) > touchpad tab > [ ] enable click on touchpad.

<comment><USER10> Yeah but I _hate_ GUI settings and control panels - its not possible to script them so next time I blow up my laptiop or move machines I have to do it all again

But thanks.

<comment><USER11> gconf editors are pretty scriptables

</comment></comment></comment></comment><comment><USER12> > Unity is horribly inefficient with screen space

WUT? Unity needs LESS screen space then AWESOME WM or something similar because of it's global menu. Look! <http://screencloud.net/v/zB84> How much more vertical space would you have in awesome?

And, as someone mentioned, left panel can be hidden, but I prefer to use it.

<comment><USER13> AwesomeWM can be configured to make the statusbar vertical. I have seen a few people on the mailinglist who prefer it that way.

The titlebar that you see for firefox, in the link you provided, AwesomeWM does not waste space on that: you'll find the title in the statusbar/taskbar. These bars can be hidden in AwesomeWM too. How big are your window borders in Gnome/KDE? With one line of configuration, I set my borders to 1 pixel.

<comment><USER12> No, I'm talking about menu like "File, Edit, View ...". It's just not visible because you have to put your mouse on that panel to see it.

It's not that it's "unity thing", it's just that I'm not sure if you can do that in Awesome WM.

</comment></comment></comment><comment><USER14> "Did you just get used to OS X Lion's inverse scrolling? Me, too! "

I initially thought the author was being sarcastic, but the next few lines suggest he was serious. There's a really easy way to change the OSX setting (and I do this on every mac I use):

System Preferences -> Mouse -> Scroll & Zoom -> uncheck "Scroll direction"

<comment><USER15> Yeah, I barely use OS X (all home computers are W7/8 and my Uni has a very limited number of macs,

in fact I only ever used them because of the novelty but when I found everything ten times harder to do because I couldn't use my shortcuts and the UI was totally different from what I was used to I avoided them)

but the first thing I did after realizing that OS X messes with scrolling was change it so it made sense. no googling was required, I just checked out the Sys Preferences like you suggest.

<comment><USER16> Yeah same here, only replace "OS X" with "Windows".

</comment></comment></comment><comment><USER17> Dell has gone on and off with their Linux support during previous releases. But, I am not particularly concerned because in the Linux community, if there are drivers for your hardware today, they will likely exist forever. As for Unity, I can't agree anymore with your observation that it requires many mouse clicks to get something done. Compared to OSX and even to Windows, Unity has wasted tons of screen estate and made it much harder to get things done. GNOME2 is definitely legendary especially because of it's simplicity and versatility.

</comment><comment><USER18> Are there any decent tiling window managers for OSX? A quick google doesn't seem to reveal anything as awesome as AwesomeWM (or its counterparts).

<comment><USER19> Slate - <https://github.com/jigish/slate>

Divvy - <http://mizage.com/divvy/>

Tyler WM - <http://www.tylerwm.com/>

Moom - <http://manytricks.com/moom/>

ShiftIt - <https://github.com/trisweb/ShiftIt>

I'm pretty sure I'm leaving something out.

<comment><USER20> Spectacle - <http://www.macupdate.com/app/mac/41147/spectacle>

Very basic and easy to get used to, fixed options for screen estate.

<comment><USER16> +1 for Spectacle, I only use like 3 simple configurations, and Spectacle is simple and free.

</comment></comment></comment></comment><comment><USER21> Unity is inefficient with screen space - does he mean this serious?

And Unity is totally optimized for keyboard usage, the whole Dash concept is based on keyboard usage.

I liked the idea for the trackpad, reducing the clicking time to 0.

</comment><comment><USER22> As a Colemak user, I would suggest remapping Caps Lock to backspace instead of Ctrl.

<comment><USER23> But with Ctrl, you have access to ^H, ^W, and ^U. It's 3 backspaces in one!

</comment></comment><comment><USER11> summary:

paragraph 1, i don't like gnome3/unity

paragraph 2-n, how to change settings, in the worst way, so it behaves like a mac

only thing I agree is the trigger to gnome-settings-daemon. that is really trick.

<comment><AUTHOR> Thanks for the summary. I probably should have just written that instead.</comment></comment>


Tablet Keyboard Improvement - <AUTHOR>

I love tablets but hate typing on them.  The major issues are with typing, copying, pasting, etc.  I think this problem can be easily fixed but nobody it working on it.  For instance, cause when I select stuff with my fat fingers I can seldom hit before the right character - as such arrow keys (forward and back, possibly with a frontspace (opposite of backspace)) would be useful.
Right now the only way to correct a word is to press somewhere behind it, type in the new one and press again in front of it.  we need a keyboRd that can surf the full '.text' space with keys (like Turing complete or whatever for the keyspace applied to typing) as most tablet keyboards can't navigate everywhere with keys in a text box  area).
I post here hoping someone with the can-do attitude will make it happen. <comment><USER2> Easy, just add a USB port!

</comment><comment><USER3> I hear you.</comment>


Hilary: the most poisoned baby name in US history - <AUTHOR> http://hilaryparker.com/2013/01/30/hilary-the-most-poisoned-baby-name-in-us-history/

<comment><USER2> Wow. I'd never even considered something like this, but the analysis was fun to read. Interesting post.

</comment><comment><USER3> The code is real good.

</comment><comment><USER4> "It's a German name. It means 'she whose bosoms defy gravity'".

Sorry. Couldn't resist.

<comment><USER5> <http://twitter.com/hspter/status/296715920389320705></comment></comment>


Your First Hire Should be a Sysadmin - <AUTHOR> http://engineering.crowdtilt.com/your-first-hire-sysadmin/

<comment><USER2> Sysadmins are what you bring in once you've grown enough that operational issues detract from development rather than add to it. A sysadmin should absolutely not be your first hire. At most a consult with an engineer in the early days to get you started. This would help if your coders are used to handing off deployment to someone else. Bluntly, if you completely lack ops knowledge, buy an hour block from an ops specialist that can get you over the rough patches.

My concern with a sysadmin first is that you'll want your early development very tight with your production systems. A sysadmin is the last thing you'll need while doing fast iterations on an MVP. In the early days your need for feedback is high and your operational issues are low. After some significant growth your ops needs will be high, and the feedback value of those issues will become lower (more repetitive less new information). This is where you bring in a sysadmin to manage/automate the repetitive and filter some of the ops issues into actionable information for the development team.

Edit: Ops guy for over a decade btw.

<comment><USER3> Author here. Admittedly, the title is a bit strong (though mismatch in titles was by a mod) but I was hired simultaneously with our lead dev and focused on ops/automation, as well as, product development in the early days. More accurately, my point is that it's extremely important to have _someone_ focusing on these issues from day one.

edit: the title mis-match was by a mod

<comment><USER2> The article makes more sense from that perspective. The idea that ops needs should be planned and responsibilities designated makes sense. Otherwise it's easy to end up with fragile systems that are no one person's responsibility.

<comment><AUTHOR> +1

</comment></comment></comment></comment><comment><USER4> I could not disagree with this more.

Focus on building your business and your product, not devops infrastructure. Unless your business is devops infrastructure.

Your initial technology stack should allow you to deploy code seemlessly from day 1. This is why Heroku is a great start for early startups, despite the drawbacks.

<comment><USER5> Having spent nearly a decade of my two decade career cleaning up totally broken developer-architected systems that were so poorly coded for performance that they could barely handle 10 concurrent users, I have to strongly disagree.

It's getting better, but most developers still focus on making it work _right now_ over making it work _right_. They don't think about caching, or query optimization, or debug logging, or stateless scenarios for portability and clustering.

These are all things that need to be thought about _before_ you start.

That said, a generic sysadmin won't be the kind of architect that is _best_ , but they'll be thinking about more of that stuff than the devs, plus he can implement and manage your infrastructure. Seems like a win to me.

</comment></comment><comment><USER6> No, a full-time sysadmin is dumb idea for first hire. Your first deployment is not going to be complex and there will be a lot of moving parts. If you dev team can't understand deployment I'm not sure what your expecting your first hire sysadmin to do.

Especially when services like heroku and take alot of the heavy lifting of the start ups hands, initially anyway.

</comment><comment><USER7> I don't think you should hire a sysadmin until you have a larger set of developers. Still, I think there's a good point here: you should think about deployment early on. Having things automated will allow your early team to spend more time writing features and less time fighting fires and hacking production configurations.

</comment><comment><USER8> We are a small 5 programmer company, and we implemented a couple of ansible scripts to deploy our applications a 2-3 month project.

For us, at least, a full-time sysadmin is overkill, and I would expect any decent programmer to be able to implement this himself as part of his basic skill set, or to be able to learn it quickly.

</comment><comment><USER9> I imagine it depends on your focus. Want to pay someone else to do your sysadmin for you and take advantage of the economies of scale - use a PaaS provider and makes plans for when you outgrow it.

Want your developers spending time debugging CM scripts and install quirks? "Full stack" developers it is.

Want developers developing, and your application doesn't fit into a PaaS architecture? You absolutely need to hire a sysadmin.

</comment><comment><USER10> Your first hire should be the person who fills in the missing gaps in your product.

For example, good product, code is done, bad design => hire designer.

<comment><USER11> yes!

</comment></comment><comment><USER12> I'm also going to have to disagree with this one. There are plenty of frameworks (Ruby on Rails) and companies (Engine Yard, Heroku) that take care of these issues for you on a time-share basis (ie. 20 companies use them, they hire 5 sysadmins). I would say if you're not spending 7 figures on server costs a year you absolutely do not need a personal sysadmin.

<comment><USER13> Disagree with the seven figures number. Six figures, sure. Seven is just silly. You can have a lot of gear or servers for mid/low six figures.

</comment></comment><comment><USER14> I really disagree with this. For your first hire, a full time sysadmin who cannot work on developing the product itself is just as useless as hiring a developer who cannot ship the code.

I think what this article is trying to get at is that your fire hire should be a full-stack engineer who can also play the DevOps role when needed.

<comment><USER11> I think saying a sysadmin 'cannot work on developing the product itself', is silly. I think it's a given that anyone joining at such an early stage of a company is going to be developing the product. You will definitely need a sysadmin that can develop the product and move fast. Your architecture is part of the product, and the sysadmin should help with the design and implementation of the architecture, as well as possibly parts of the codebase going onto that architecture.

</comment></comment><comment><USER15> Why was the title changed from "Should" to "Could"?

While I don't agree with the author's argument, he's at least making a specific point.

"Could", on the other hand, reduces it to being meaningless. Your First Hire _Could_ Be a Weirkeeper. Or a milliner. Or a janitor. Or, you know, _anything_.

<comment><AUTHOR> The post was changed by a moderator. Our blog post title is what we stand by

<comment><USER15> Sorry if I wasn't clear; that's what I assumed happened.

Which seems an awfully silly thing for a moderator to do since it effectively guts the premise of the article. Glad to see it's been changed back.

</comment></comment></comment><comment><USER16> > _Your First Hire Should be a Sysadmin_ (an imperative and definitive > statement)

Written by a Sysadmin....

He goes on to say how he built infrastructure and how it benefited the company but... He was far from the first hire at Crowdtilt - which invalidates the whole premise. why compromise the whole integrity of the article with a false premise and untrue suggestion.

<comment><USER3> The title is strong, yes (on purpose). I'm not certain how you came to the conclusion that I was far from the first hire at Crowdtilt. Your statement is simply false.</comment></comment>


Why Some Veterans Hate it When You Say 'Thank You' - <AUTHOR> http://www.theatlanticwire.com/features/view/feature/Why-Some-Veterans-Hate-it-When-You-Say-Thank-You-2738 <comment><USER2> I served from 2006-2010, spent 8 months in Afghanistan.

I do agree that seeing a thank you on a billboard, or box store promo is an insult. Don't use the troops as leverage to hold a sale or promotion.

However, having been in hundreds of those "thank you" situations, I can honestly say that I've never been upset or agitated. Embarrassed? Yeah. Humbled and Honored? Definitely. Pissy? Never.

It's not my job to question someone's reasoning for thanking me...I much prefer that to the opposite.

Empty gestures are certainly a topic for debate, but I can't get in your head any more than I can get in that of my fellow Soldier's heads.

Lastly...I can guarantee you that 99% of the Soldiers I served with are honored to be thanked.

To be honest, we find it a little uncomfortable, because to us, we're just doing our job.

<comment><USER3> _Lastly...I can guarantee you that 99% of the Soldiers I served with are honored to be thanked._

I'd be willing to bet you serious money on that.

Estimates are that one veteran in 8 from Iraq has PTSD. A significant fraction of those will have trouble with this type of verbal reminder. Therefore I believe that there is no way that the rate of people who would have issues with the thank yous is below 1%.

That said, I do not doubt your reaction. Or that your reaction is common among veterans. But even if 9 out of 20 veterans are not bothered by the thank you, the pain caused to the remaining ones is bad enough that I think it unwise for people to randomly thank veterans they don't know.

<comment><USER2> Sorry, what I meant was that I can only speak for the Soldiers I served with in Afghanistan or in my company. From our conversations, they've always felt it was an honor. Perhaps it's different in other places.

Edit: btw, I'd estimate that more than 1/8 at this point. Most Soldiers these days spend more time overseas than at home. My friends deploy every 6 months. Friends from the old unit, every 18 months for 12 at a time. It wears on the soul, and the family.

</comment></comment></comment><comment><USER4> I was in the US Army from 1968-1971. It happens occasionally that someone will say something like 'Thank you for your service' or words to that effect. My response is usually along the lines of 'If you really want to thank me then put some effort into ending wars.'

</comment><comment><USER5> I've been called both baby killer and hero.....whatever.</comment>


Show HN: An attempt to rethink a music sequencer design - <AUTHOR> https://github.com/peterrudenko/helio-workstation <comment><USER2> This looks very nice! I'll have to give it a try soon.

If anyone is interested, I've also taken a whirl at solving the problem of overcomplicated DAW interfaces, albeit in a more limited capacity. My first project in this vein is Composer's Sketchpad[1], which aims to explore "freehand composition" by letting users draw notes in strokes directly with their fingers or stylus, bending the pitch and adjusting the length as they go along. The second is MusicMessages![2], in which every note is a button in a giant scroll view, allowing the user to enter and adjust quick melodies with just a few taps.

While these apps will never be remotely as powerful as a fully featured DAW, they allow the user to explore certain kinds of musical ideas far more efficiently than with FL Studio or Logic. In my opinion, one of the biggest barriers in creative thinking is the amount of cruft and micro decision-making between the artist and their output, and musical composition is particularly bad at this — there's no "lightweight Markdown editor" equivalent for composition quite yet. Helio is very exciting because it has some of those same benefits while sitting far closer to a professional DAW. I'm very interested to see where it goes!

[1]: [http://composerssketchpad.com](http://composerssketchpad.com)

[2]: [http://musicmessages.io](http://musicmessages.io) (currently working on a full iOS version as a separate app... will fold the Messages extension into that one)

<comment><USER3> I really like the concept of Composer's Sketchpad. I like to play around with FL Studio piano rolls, but it is a little overwhelming. Too bad I don't have any iOS devices because I'd love to mess with your app.

</comment></comment><comment><USER4> As a DAW created by a single person, I must say great job. But one thing that stuck out for me most was the merging of instruments into a single visual track. As a person that designs simple DAW interfaces for a living [1], I highly recommend against that, and instead move to a more traditional instrument/track separated model.

Some back story: when we released the first version of Medly, we actually had notes on top of each other, merging the tracks into one. This turns out to be bad for both visuals (as it overcomplicates things) and for interactions. We ditched it for a more traditional format, but added a feature that let you view notes from other tracks when editing. Never regretted that decision since.

[1] [http://medlylabs.com](http://medlylabs.com)

<comment><USER5> This is far and away the best thing in this thread.

</comment></comment><comment><USER6> "Most of the DAW interfaces often seem overcomplicated, and they only tend to get more and more bloated over time."

How much can you simplify the interface and still make it do everything producers want to do? Garageband simplified the interface quite a bit compared to Logic, but even that can get complicated and ultimately isn't as flexible as other DAWs.

I've been a fairly loyal user of Sonar and FL Studio for over a decade, largely out of habit because that's what I used when I first started and don't care to learn anything different. Especially with FL Studio, early versions of that were extremely simple. At it's core, it's still fairly simple, but allows you a lot of flexibility to do crazy things through automation.

Especially in EDM, the DAW has essentially become another instrument for creativity, so limiting that will limit the audience to those with lesser needs. I do think there is a big hole for a cross-platform DAW that's at least halfway decent, so this is exciting to see!

<comment><USER7> It is possible to simplify the interface by reducing the number of tools without necessarily removing functionality.

The idea is to identify large sets of tools that can be replaced with a handful of powerful combinable tools to perform the same tasks - this is not always easy but if done well can end up not only simplifying UI but providing more powerful, intuitive tools and reducing unnecessary learning.

I think Modo has done this fairly well in this regard for 3D modelling and animation (programs which tend to be notoriously full of thousands of discrete tools).

This is not limited to DAWs. 3D animation packages, photo editing and video editing packages all historically have this problem... They grow these discrete tools to a large number, it increases the UI complexity, inevitably resulting in tons of stuff hidden under context menus and usually heavily resorting to mode based interfaces.

I had hoped this concept would become popular so that things like Photoshop and Illustrator could be simplified.

<comment><USER8> The trick is how much state you have to keep in your head. Something like Blender requires enormous state about even things like what key combinations mean in different contexts: it's a poster child for impossibly demanding state requirements.

Something like the Flash pen tool is much simpler, but still absolutely requires you to maintain some state: clicking versus click-dragging, remembering not to close a shape by simply clicking on a control point without also dragging out Bezier points. There are expectations before you can begin to flow with the thing.

I've been working hard on this concept using a Minecraft mod (Snowball Madness: [http://www.airwindows.com/snowball- madness/](http://www.airwindows.com/snowball-madness/) ) that suffered the same problem. I'd made countless 'effects' so it was nearly impossible to remember what did what.

After a drastic functionality-culling process, I began rebuilding things in line with a concept: generalizing. If you can place a block above a snowball and it places the block where the snowball hits, that's what it does, no exceptions. TNT used to spawn explosions just for silly fun, but it became 'place TNT block' altering the type of silliness. Pickaxes used to dig large holes in rock (in some cases, leaving ores hanging) so all the other tools got similar treatments: axes vanishing wood logs, shovels vanishing dirt, hoes turning grass/dirt into tilled farmland. Always trying to incorporate 'cheaty' ways of doing things but predictably so.

It's like the old Apple UI guidelines. The default expectation is that you can grope blindly towards a result and things do what you think they would do, allowing you to not think about the process.

<comment><USER9> How about coding a song instead? With the right language or DSL it should be possible. Substitute a Music IDE for the DAW, maybe keep some visualizations (synced to the code of course).

I suppose musicians are more comfortable with a visual metaphor. Still the over-the-top skeuomorphism doesn't seem that efficient to me compared to just coding it.

<comment><USER10> There are numerous examples of music programming languages. I imagine some people have some success with them, but I think they are not widely adopted because it lacks the immediacy and tight feedback loops available in DAW.

In a DAW, as you're playing the track, you crank the reverb knob until you hit the sweet spot.

In a music programming language you fiddle with values and re-compile repeatedly until you find the sweet spot, but even then it's hard to find because you can't remember if it's better this time you compiled or last time.

For musical coding to work, I think it needs a Bret Victor / Swift Playgrounds / Lighttable style IDE, and then... it starts to look a lot like a DAW, just with algorithms instead of a note grid or timeline.

</comment></comment></comment></comment></comment><comment><USER11> It has a product home page:

[https://helioworkstation.com](https://helioworkstation.com)

One of the features is "Incomplete - Helio is a one-man hobby project, that is a work in progress. The author builds it for himself and shares with the world."

I give +1 for honesty.

Honestly it has the same "piano roll" grid layout many other programs I've dabbled with have (garage band, ableton). It has linux support which is great.

<comment><USER12> From the video, it appears to me that the main interface is basically a combined piano roll? I did not get the information I wanted from the page or the video.

</comment></comment><comment><USER5> I like the idea. I'm a composer, and can never find a simple music sketch app that I like. Everything is either too complicated, too expensive, or some other kind of terrible. I guess Garage Band isn't too bad, but I still have trouble with it. My preferred way of working is with the built-in touch-screen sequencers in Korgs and Yamahas. That workflow is damned perfect. On the desktop, there hasn't been anything usable since Impulse Tracker.

I played around with your app for a while. I found the UI frustrating overall. I couldn't find any instructions. There are no tooltips. It needs tooltips at least. Copy/paste flummoxed me over and over again. I seemed to hit the "end" of the track after 10 measures?? I could make notes longer, but not shorter. After the first 4 toolbar commands, I couldn't figure out what any of the rest do.

I'd really love to have a nice desktop composition sketch app, with a piano roll just like this. Nobody can persuade me that anybody has done this right yet, so as far as I'm concerned you have no competition. I hope you'll keep working on this. I suggest working on the UI.

<comment><USER10> Have you had a look at Korg Gadget on iOS? it's not perfect, but maybe it's model works better for you than GarageBand... I'm a fan.

</comment></comment><comment><USER13> Finally a music tool with version control. I've been wishing for this to happen for so long!

The first big player (Ableton etc) to integrate versioning will have a huge advantage.

<comment><USER14> Can't you just commit your ableton projects in git ?

<comment><USER15> There's a LOT of binaries involved (in the sense of large .wav files at least), and I doubt the Live file format particularly lends itself to text- based version control

<comment><USER16> The Live file format is gzipped XML. It very much lends itself to text-based version control. (I've even played around with adding such as a third party.)

<comment><USER15> Whoa, cool! Good to know—thanks!

</comment></comment></comment></comment></comment><comment><USER17> Looks a lot like Melodyne. And FL Studio. A "re-think" would be using depth of space to be able to go "in and out" like layers. It's a nice project and I hope it was gratifying.

Reaper has solved the issue of "One Simple DAW to rule them all" for me (used to be Cool Edit Pro 2.0) because it genuinely covers so much usable turf (Max is not in the same conversation as 'simple DAW'). It is the best mousetrap for the money on the market.

</comment><comment><USER18> Man do I miss native desktop apps. This is so well done!

Something like this could be a Guitar Pro killer if it had support for writing a score/tablature. Imagine being able to commit changes to a score and have your bandmates pull it down and review, add to it, etc... it could really change the way we write music, especially in a world where you don't have to be in the same room to record an album together.

</comment><comment><USER19> I just had a play with this. I must say, my favourite feature so far is the chord suggestion wheel (dunno if this interface has a name). A lot of the time I feel like when experimenting with chord progressions or in the beginning stages of writing a song I miss out on interesting chord combinations simply because when messing around on the piano I forget to use or try certain chords or variations. It's really nice to have this selection there (although including extended chords would be awesome!)

Also, I noticed you build it with JUCE. I'd be _highly_ interested in a series or even very short writeup about how you made the ui and it's various components with JUCE. I haven't built anything nontrivial with it yet but audio (and as an extension, UI programming) is very interesting to me.

<comment> ryan-allen OH this is one of my favourite things (chord explorers), Ableton doesn't have one but Cubase does. I am surprised it isn't more of a feature elsewhere, as they solve the problem of 'I have to learn to play these chords to effectively compose with them'.

You don't have to be an expert player to use your ears to write harmonically interesting things as a result. I can't wait to get home and try this!

<comment><USER19> I had no idea cubase has this. I sometimes use a plugin called Cthulu (link below) to achieve a similar outcome, but the workflow is nowhere near as nice.

[https://www.xferrecords.com/products/cthulhu](https://www.xferrecords.com/products/cthulhu)

</comment></comment></comment><comment><USER20> Beautifully clean, and simple! I've had my eye out for something like this, and I really do feel the other solutions are too big and clunky.

That said, I think the font is clutery.

The intro user flow is atypical and disruptive. I think it should start on this [https://puu.sh/vy4pd/776dde20a8.png](https://puu.sh/vy4pd/776dde20a8.png) screen instead of inside a project. Then once inside maybe a little walkthrough or some guides?

Lastly I think the weird labels (Arps, counterpoint, melodic) on the left hand side are unintuitive for a novice. Also the addition of alt+drag to duplicate would be really nice ;)

But all in all, would use!

<comment><USER21> Agreed on the typography: "Comfortaa" is not what I would consider a UI font.

As an alternative, OSS type family, I would recommend Lato ([https://fonts.google.com/specimen/Lato](https://fonts.google.com/specimen/Lato)). It's the family Slack uses, and I think it would look great in the UI for Helio.

</comment></comment><comment><USER22> As a musician I must say that I love the simplicity, version control and workflow of this application! While as a developer I must say that I love seeing a modern cross platform application developed using something else than Electron.

</comment><comment><USER23> Beautiful UI. Despite what others might comment about its utility and relevance, I see this as a very interesting project to learn audio processing & clean UI design. Please let us know your background. Are you an audio DSP engineer? Is there a list of features that you are planning to integrate?

Kudos!

</comment><comment><USER2> After playing with it a little, a few suggestions:

1\. Make it possible to (inertial) pan and pinch zoom when using a Mac trackpad. This would be significantly faster than using the lower navigator for Mac users. Also, I don't think it's a good idea to make the scroll wheel change the x-scale.

2\. Add a shortcut for deleting notes when in "feather" mode — maybe middle- click? (I see right-click is reserved for changing layers.) This would make it possible to work on a piece of music without having to use the keyboard or move the mouse away from the canvas.

3\. Is there a way to change the division of beats? IMO there should be a way to do this very quickly, so that I can switch between divisions of 4 and 3 for example.

Great work! Out of curiosity, how long have you been working on this project?

<comment><USER2> Also, creating a new layer should be simpler — putting it in the New Project menu is weird. Maybe just have a "+Layer" button under the lowest layer? It should also be possible to drag layers and change their order.

</comment></comment><comment><USER24> Looks interesting. Trying to install it on my phone gets me a "Your device is not compatible with this version" in Android's Play store. What is it you are doing in this app that has special compatibility requiremrents?

My phone has a modern qualcomm flagship cpu and latest android.

<comment><AUTHOR> It only runs on tablets for now (i.e. requires a screen about 12x7cm at least). And yes, mobile versions are still quite incomplete, I put all my effort into desktop versions.

<comment><USER24> Aha makes sense. Where do I sign up for updates? :-)

</comment></comment></comment><comment><USER25> I was recently searching for a Linux sequencer and was disappointed with what's out there so this comes at a good time. It looks pretty nice and I'll try it out soon. Two suggestions: take a look Seq24 which is made for sequencing stuff in a live environment. You might find ideas to borrow from it. Also, on your github page you say "Most of the DAW interfaces often seem overcomplicated". But this isn't a DAW is it? I use both DAWs and sequencers and my DAW interface is complex, but needs to be because it deals with audio and there is a lot of tools I need to work with that audio. I think there is much more opportunity to keep sequencer interfaces clean because they do less.

</comment><comment><USER26> Love the concept! Would be great to have more built-in instruments to try, maybe some could be adapted from LMMS? I also wonder which tools you used to build the UI. Good luck with the project!

</comment><comment><USER27> I love the circle of fifths based chord entry system. Very novel.

</comment><comment><USER28> It's beautiful and the version control feature is something I've been wishing for for a while. In the best case it'll probably still take a while till it is - no pun intended - production ready (in the sense that I would feel comfortable giving up my current sequencer), though.

For the moment I am rather happy with Presonus' Studio One (even though the current version is a bit bug ridden) Compared to Cubase it already has a drastically simplified (and enhanced) workflow.

</comment><comment><USER29> The ui is really beautiful. It seems that you implemented a complete ui library for this app?

Do you use opengl for rendering? or a 2d graphics library?

the ui itself can be an awesome project by itself!

</comment><comment><USER14> I would really like the equivalent of Unity in the DAW world. Let me script modulators/sound design while doing arrangement/mixing and stuff in UI.

<comment><USER30> max/msp might be of interest, then: [https://cycling74.com/products/max/](https://cycling74.com/products/max/)

<comment><USER31> And/or PD (pure data)[1] which is its FOSS cousin.

1: [http://puredata.info/](http://puredata.info/)

</comment></comment></comment><comment><USER32> The last DAW discussion I have bookmarked was nearly 3 years ago, a Show HN for Wavepot, a JavaScript programmer's "DAW":

[https://news.ycombinator.com/item?id=7905910](https://news.ycombinator.com/item?id=7905910) | [http://wavepot.com/](http://wavepot.com/)

</comment><comment><USER33> I would really urge the developer to identify the target audience for this and to define what needs they have that may not be met by the current crop of similar tools.

I would also recommend finding some of those people, talking to them directly, and watch as they learn to use this application.

For this to survive in a crowded marketplace it is going to have to find and serve a niche very well.

</comment><comment><USER34> Lol I've been working full time on something like this and wanted to go commercial with it. But it still seems different enough. But the UI is too similar.

Btw is that really a Wintersun song loaded in the screenshot? It does look like it could be a Wintersun song. I'm actually kinda inspired by Jari's workflow so I'm guessing I'm not the only one lol.

<comment><USER35> The developer has a song named "Winter Sun". As a fellow Wintersun fan, I was excited too, but then realized it was not the same.

</comment></comment><comment><USER36> Take this, combine with the capabilities and tab/score display of TuxGuitar, I'd be one happy person.

</comment><comment><USER37> This looks really nice! Shameless plug: I've created a looper/DAW also ([https://zenaud.io](https://zenaud.io))

<comment><USER25> Please save us a click and some reading and put the supported platforms in your plug? Looks pretty cool, but I only use Linux.

</comment></comment><comment><USER38> Looks really cool to me! I love the beautiful UI -- what tools did you use to build it in C++? I am very interested in learning more about UI design in C++.

<comment><AUTHOR> It's built with JUCE, all-encompassing C++ framework like QT, but smaller (and with lots of audio processing classes).

</comment></comment><comment><USER39> Very cool. I'm looking forward to giving it a spin!

</comment><comment><USER40> How do I build on linux? Don't have debian.

<comment><AUTHOR> You may check travis.yml (a bit hacky script but it's all I have for now).

</comment></comment><comment><USER41> I installed it on a nvidia shield tablet with latest android 7.0 but it is stuck in the "starting the engines" screen.

</comment><comment><USER42> Intriguing, I'll give it a whirl for a few weeks to see if it can tempt me back from hardware sequencers.

</comment><comment><USER43> I dream that someone will come out with a sequencer that's basically a Cirklon with an ncurses UI.

</comment><comment><USER41> It would be great to have this sequencer in caustic. Is it possible to couple them via internal MIDI?

</comment><comment><USER44> Looks very nice, well done!

</comment><comment><USER45> I was interested, until I saw the way too minimalistic demo on the homepage. If you call it a DAW with VST support and so, than just a demo of a piano piece with a huge piano roll doesn't really impress.

I don't want to be too negative as I really like the idea. But at first sight this is by far no match at all with the great DAW's out there. You can say they are bloated, but no one says you need to use all the features that are available. With most DAW's you can make a similar demo with ease.

<comment><USER12> I think they use the term "DAW" too much for something that doesn't necessarily satisfy on that level. Maybe they don't think "sequencer" is impressive enough?</comment></comment>