HarmonyOS is Huawei's Android alternative for smartphones and smart home devices - <AUTHOR> https://techcrunch.com/2019/08/09/harmonyos-huawei-release/ <comment><USER2> In the Engadget article it was stated that:

"Huawei claims that Harmony OS' IPC performance is five times that of Google's Fuchsia, and three times that of QNX."

Which I find fascinating. If they were building this as a Fuchsia competitor and are forced now to push it to market we could see rapid innovation on both sides of the divide actually coming to market soon!

<comment><USER3> Faster, smaller, and more secure, yet the say it's the backup plan. Something's rotten somewhere.

I also find the "smaller than Linux" claims rather strange. ANY microkernel will be smaller. Once you add those things back (at an almost insignificantly higher abstraction), I'm betting things get to be around the same size or slightly larger. I can't speak for other people, but I rather like not having to do the old driver search routine I did on Windows for every little thing.

<comment><USER4> > Faster, smaller, and more secure, yet the say it's the backup plan. > Something's rotten somewhere.

Yes, and that rotten thing is the app ecosystem. Without apps, nobody will use your smartphone. From what I've seen, HarmonyOS tries to be compatible with Android, but knowing the difficulty Microsoft and Blackberry had with getting the Android API to work a few years ago (before the many complications that have been layered on top since), I don't expect much from it.

I think a switch of mobile OS will go down about as well as Windows Phone. Only if they port most important apps and games (phone gaming is big in China), their custom OS just won't get the popularity to get its own full app ecosystem.

<comment><USER5> > Without apps, nobody will use your smartphone

even for Huawei, there will be _some_ 3rd party apps. and most people spend almost all of their time on a small set of apps anyway. as long as the critically important apps (there are probably only a couple hundred) to most users are available AND Huawei offers some other benefits (e.g. relativeily low price for good HW), maybe an app store with millions of apps is not critical to success any more?

<comment><USER6> A couple of hundred critical apps is a huge understimation in my opinion.

What is different now than when Windows Phone flopped? They had tens of thousands of phone apps (although I can't find an exact number), and it clearly wasn't enough.

<comment><USER5> I just feel like a lot of the novelty has worn off, and the user base has more or less figured out what they want to use a mobile device for by now.

People spend most of their time on the very small number of big name social media apps, some games, and email, camera and texting apps. ok, so maybe it's more like 1000 apps. IDK. but, if those are all present at the launch of the Huawei store, then a lot of users will say "good enough for me." Huawei could do the market research, figure out what those apps are, and then incentivize those app devs to port to Huawei.

</comment></comment></comment></comment></comment></comment><comment><USER7> A link with much more technical details: [https://www.xda- developers.com/harmony-os-huawei-announce/](https://www.xda- developers.com/harmony-os-huawei-announce/)

<comment><USER8> There is also a youtube video from the Huawei developer conference featuring a series of demos and technical presentations:

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

<comment><USER8> I have just being viewing the video for a bit (it is over 4 hours) and the Chinese translator is a bit hard to listen to.

There seems to be quite few substantial announcements there. Amongst other a new CPU with a redesigned pipeline.

</comment></comment></comment><comment><USER9> > _Yu claimed, without offering any actual proofs, that HarmonyOS is "more > powerful and secure than Android." "Can it be installed on smartphones? Of > course."_

This immediately made me wonder if I have ever seen "without offering any actual proofs" added as a qualifier to any of the press statements of Apple, Microsoft or Google.

Don't get me wrong, that kind of skepticism is good. It just feels naive and tribal to limit it to the Chinese companies.

<comment><USER10> >This immediately made me wonder if I have ever seen "without offering any actual proofs" added as a qualifier to any of the press statements of Apple, Microsoft or Google.

I would go a little further, even the use of the verb "to claim" is in itself a little diminutive, had it been one of the big US companies their CEO's would have probably "said", "stated" or "announced" or "affirmed" (and not "claimed").

<comment><USER11> How many US CEOs would have directly compared it to a specific competitor product on the announce?

<comment><USER12> There were I'm fairly sure 3 Google I/Os in a row where they specifically spoke of iOS when talking about new features (probably more still, I haven't followed the livestreams anymore for them or for WWDC in like 2 years I guess). WWDC they'd do it as well (some during speeches, then the "whose devices are up to date" pie charts with like ~10% on the newest Android release of the time and >70% on the newest iOS release of the time). Microsoft did it during the Windows Phone days, but I think now they're trying to extend olive branches especially to Android, but I believe they've been nice about iOS as well.

</comment></comment></comment></comment><comment><USER13> At the time of writing, it has only implicitly been mentioned in the comments here about the security risks this OS might have.

We know that Google has a very close relationship to the US government w.r.t surveillance.

Apple claims to be "fighting" it, whether as PR or genuine.

Huawei on the other hand is deeply intertwined with the Chinese government and their policies should give an indication that backdoors and total surveillance will be passed into the OS.

I don't see this OS succeeding beyond China though. US companies still dominate the app market outside China. No WhatsApp = no thanks; to the majority of the developing world.

<comment><USER14> > I don't see this OS succeeding beyond China though.

I wouldn't be so sure. Obviously it would be an uphill battle for the OS to compete in the US or Europe, but anywhere that doesn't have clear smartphone dominance yet (ie most of India or Africa) is fair game. Huawei already has a strong foothold in both of those places, and the Chinese government is not opposed to strong-arming them into sticking with Huawei infrastructure.

</comment></comment><comment><USER15> I don't believe for a second that buying a phone installed with HarmonyOS will ever be compelling to consumers. This is microkernel based, which makes me believe that it's not an AOSP fork, which means having compatibility with Android apps is not going to be straightforward. Think of the problems that Amazon has had filling their app stores with quality ports, and they are only selling tablets now because they are nearly giving them away for free, and also have tight integration with Amazon services, which some people like. PurityOS has a slight chance, but only if they can make it work within the niche audience that they are targeting. Microsoft couldn't make a phone OS work. Firefox couldn't make a phone OS work. It takes years to develop a catalog of apps. If Huawei were truly to be using this as a backup, they would need to start working on getting developers on their platform yesterday, not "in the future".

<comment><USER16> HarmonyOS, if it is a decent OS, which is a huge IF, will have the advantage of having a huge and fairly receptive Chinese market.

It better be open source at least if it wants to have any chance of being used outside China though, and not just "open" source.

<comment><USER17> > "open" source

Not sure what that means, but open source is pretty much irrelevant in this market, for one because we already have Android and it doesn't help much.

If you want to fork Android, it's easy and except for Google's proprietary services, like the notifications, you get compatibility with the entire Android ecosystem out of the box.

So why is there no successful fork around, except for Amazon's, which is very niche and doesn't count?

Open source is defined by the freedom to fork. However if the market forces are such that forking isn't feasible, then the open source nature is irrelevant.

Going back to your usage of quotes in "open" source, if that's what you meant, well, unfortunately Huawei is not the FSF.

<comment><USER18> I would say, their source code should be available for anyone to see, especially security researches. And what is installed on the phone should be exactly what is available in public.

</comment></comment></comment></comment><comment><USER19> > The availability of the mobile operating system, which is open source

Where is the source?

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

</comment></comment><comment><USER21> The Huawei CEO said HarmonyOS can replace Android on its smartphones "at any time," but reiterated its previous commitments to Google's platform.

[https://www.androidauthority.com/huawei- harmonyos-1017511/](https://www.androidauthority.com/huawei- harmonyos-1017511/)

</comment><comment> lota-putty Market monopoly is bad for the market's harmony.

Two non-colluding competitors are better than a monopoly; three better than two.

Hypothesis: Anything more than a 33% market capture by a producer is bad for consumers eventually.

</comment><comment><USER22> Since nobody has pointed it out yet, harmony = 和諧, which is a euphemism for censorship in China.

And then there is 和諧 = 河蟹, which is an atonal homophonic euphemism for the euphemism.

<comment><USER23> Could you explain a bit more about the atonal euphemism? Is this a common alternative to express a word in Mandarin?

<comment><USER24> The atonal euphemism is a common alternative to avoid automatic censorship of various websites.

<comment><USER22> Exactly. It's a tongue-in-cheek that basically says that you need to circumvent censorship when you want to talk about censorship.

By the way, I'm not a linguist and I just completely made up that usage of "atonal homophone". Could an actual linguist chime in and tell us what's the correct way to describe a "homophone" that doesn't match in tone, in the context of a tonal language like Chinese?

<comment><USER25> It's usually still called a pun or homophone. Most puns in English don't precisely match phonetics (especially stress) either.

</comment></comment></comment></comment></comment><comment><USER26> I can't think of anything I want less than Huawei smart home devices.

<comment><USER27> Google smart home devices?

<comment><USER28> Reminds me of the joke: "My wife asked me why I spoke so softly in the house. I said I was afraid Mark Zuckerberg was listening! She laughed. I laughed. Alexa laughed. Siri laughed. Google Voice Assistant laughed."

</comment></comment></comment><comment><USER29> > The top executive also claimed that HarmonyOS' microkernel has "one- > thousandth the amount of code in the Linux kernel."

Wow, really? A microkernel with a lot less code then a macrokernel? I'm amazed!

Seriously, though, this is the writing of a clueless reporter with no editing. Obviously, that executive was simply _explanining_ that the microkernel is small.

Other than that - it would be nice if HarmonyOS were to become a properly FOSS OS which can be relatively easily installed on phones with Android (Huawey or otherwise).

</comment><comment><USER30> So, they finally decided that the connotation is "tricky" with Hongmen. The transliteration in Pinyin sound close to informal name for black societies. The "Secret Society OS" is not the best pick for an OS name when things happen in Hongkong.

<comment><USER31> No native Chinese speaker will mistake 鸿蒙 (Hong Meng) for 洪门(Hong men) . And no Non Chinese speaker will even know what is HongMen.

Don't know where you're going with this.

<comment><USER30> Sure, the thing is much more about the part of population with richer imagination.

I myself could not have imagined character 貓 being censored because of another "Mao"

</comment></comment></comment><comment><USER32> Warning everytime you send or browse unharmonious messages, reapeated offenders will have their phones bricked, as this will be the most voted feature on Weibo./s

Stating that this is not for smartphones just days ago, now they decided fuck it why not?

</comment><comment><USER33> So, was anybody able to find some source code for this allegedly Open Source OS or the allegedly Open Source ARK compiler?

<comment><USER34> Which open source license requires them to release the code _before_ the product is even released?

<comment><USER33> Fair enough regarding Harmony, but what is up with ARK?

Check out this Google Search: [https://www.google.com/search?client=firefox- b-d&channel=tro...](https://www.google.com/search?client=firefox- b-d&channel=trow&q=ark+compiler)

Pages upon pages parroting the Open Source claim, bot not a single line of code in sight.

Ma issue here is with these news outlets parroting the Open Source claims. Your stuff isn't Open Source until the sources are open.

<comment><USER35> I think I found it.

[https://www.huaweicloud.com/kunpeng/software/ArkCompiler.htm...](https://www.huaweicloud.com/kunpeng/software/ArkCompiler.html)

<comment><USER36> Some strings:

/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/../../open_source/hcc_arm64le_build_src/gcc-7.3.0/configure --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=aarch64-linux- gnu --with-arch=armv8-a --prefix=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu --disable-multilib --disable-libmudflap --enable-nls --disable-sjlj-exceptions --enable-gnu-unique-object --enable- linker-build-id --enable-shared --with-arch=armv8-a --with-gnu-as --with-gnu- ld --disable-libstdcxx-pch --enable-libstdcxx-time=yes --enable-lto --enable-c99 --enable-clocale=gnu --enable-multiarch --enable-gnu-indirect- function --enable-checking=release --enable-threads=posix --enable-plugin --enable-long-long --with-pkgversion='Compiler CPU V200R005C00SPC030B003' \--enable-languages=c,c++,fortran,lto --with- headers=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu/sysroot/usr/include --with- sysroot=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu/sysroot --with-build- sysroot=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu/sysroot --with- gmp=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu --with- mpfr=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu --with- mpc=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu --with- isl=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu --libdir=/usr1/compiler_cpu/code/current/build/hcc_arm64le_ark/arm64le_build_dir/gcc- ark-7.3.0-x86_64_aarch64-linux-gnu/lib64 --disable-bootstrap --enable-fix- cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-system-zlib

Nothing out of the ordinary at first glance. The tarball has your usual compiler stuff (binutils, gold) and a standard linux sysroot with glibc.

Whatever "ARK" is, I don't see it.

<comment><USER37> It might be just a gcc fork probably?

I mean, the current compilers from Arm and AMD are literally just clang forks… why would anyone reinvent the wheel when you can just tune clang :)

</comment></comment></comment></comment></comment></comment><comment><USER38> There's also a bit of discussion on the link I posted, which got enough points but never made it to the front page [https://news.ycombinator.com/item?id=20651984](https://news.ycombinator.com/item?id=20651984)

</comment><comment><USER39> It doesn't matter if it's faster or has more features, it is hard to get a foothold in the Smartphone market. Windows Phone was better than Android IMO, it had a much cleaner UI ( Compared to Android 2.3), better battery management and was much easier to develop. But at the end of the day , developers just did not write apps for it.

HarmonyOS will end up in the same boat. Devs won't write apps for HarmonyOS because it wouldn't have users and users wouldn't buy Huawei because it doesn't have apps. It's a chicken and egg problem which is really hard to solve.

</comment><comment><USER40> There is a related thread with some discussion [https://news.ycombinator.com/item?id=20651984](https://news.ycombinator.com/item?id=20651984)

</comment><comment><USER41> Before somebody show me the code or even just few screenshots other than [https://www.huaweiupdate.com/screenshots-of-ark-os-the- new-h...](https://www.huaweiupdate.com/screenshots-of-ark-os-the-new-huawei- os/), I'm going to assume this OS is based on Microsoft PowerPoint.

I been watch related news since the first broke out, but I noticed all the news was just like "OakOS will be a better OS", "Hongmeng OS will be the Android killer", " HarmonyOS will be an alternative OS that can run on anything".

"Will be" is a very empty word, and I want to see the real info.

<comment><USER42> Huawei has stolen technology from its Western competitors on multiple occasions so I would not be surprised if they just stole most of Android and said neener neener state-sponsored anticompetition

<comment><USER17> Given AOSP, the core of Android, is open source, which is what allows forks to exist, including Amazon's, what's the point in "stealing" from Android when they can just use it legally?

Google's grip on Android is via Google Play. Replace Play with your own store, replace Google's proprietary stuff (email, maps, notifications) and you've got a ready to use fork.

It's really not that complicated for a big company.

All smartphone vendors could do it, except none of them have the capacity to recreate Google's ecosystem that's being controlled via Play. It's why Windows Phone was a complete failure.

Think about that for a second. If Microsoft couldn't bootstrap an app ecosystem, most companies don't have any chance.

And I'm sure Huawei could, but will it take off outside of China? I doubt it.

</comment></comment></comment><comment><USER43> Given that it is an OS from a China-fund company, I would hesitate to use it as much as I can away from surveillance.

It is almost guarantee that backdoor will be there.

<comment><USER44> Can't see them collecting much more than google do.

One has more influence over my life, the other is China.

<comment><USER45> We see what China is doing to its Muslim minorities. Having a government like that gain insight into the habits of people of other countries is probably not the best idea.

<comment><USER46> We see what Muslim is doing to its China minorities.

</comment></comment></comment></comment><comment><USER47> Hackernews is full of prejudice against Chinese things.

<comment><USER48> Hacker news has 173 comments right now and my rough estimate is %20 are anti- China without contributing anything new to the conversation.

The original article on Tech Crunch has 5 comments and 80% of them are prejudiced against China with some slipping into racist territory.

So I would say that Hackernews lifts significantly out of the general cesspool that is internet comments.

</comment></comment><comment><USER49> Hopefully, they will rewrite it in Rust.

</comment><comment><USER50> Just what I want, a phone OS from a less privacy conscious company (China, Inc.) than Google.

</comment><comment><USER51> As an English speaking person I have a vested interest in operating systems that are in English.

If Harmony OS takes over then I doubt the finer points of the documentation will necessarily be in English.

I know there are many strong opinions on everything to do with China, but if English is no longer the lingua-franca in tech then I will be blaming the Trump regime and the three letter agencies for messing it up.

<comment><USER52> Even in IT, in certain world regions you would have better luck with some variation of Spanish, Portuguese, French, Russian as Lingua Franca than English.

<comment><USER53> Most of the IT infrastructure most people would use at any point will have documentation in English. I'm sure you could find isolated examples to the contrary and no doubt those examples are sometimes also great software worth using, but this is currently not the norm.

<comment><USER52> Then I have to tell you that in quite a few projects, the skill that the clients were looking for was that besides my programming skills, I also master a couple of human languages.

No documentation, comments written in native language and even identifiers are not so uncommon across many corporations.

<comment><USER53> I never claimed otherwise, I said that this could be the case.

</comment></comment></comment></comment></comment><comment><USER54> Well, it's the app selection that makes an OS, so if HarmonyOS can't run Android apps, it's doomed. Even if Huawei dumps money into developers (Microsoft tried that with Windows Phone).</comment>


Alibaba Puts SDK Flutter to the Test - <AUTHOR> https://hackernoon.com/competing-frameworks-alibaba-puts-sdk-flutter-to-the-test-88eb8cf1f35a <comment><AUTHOR> Found this while evaluating options for moving away from React Native (which is not really working well for us). As much as I love Flutter/Dart, the big problem: most of our users are on iOS, and Flutter being a Google project, seems to prioritize Android over iOS (RE: UI polish and runtime performance). Looks like we'll be sticking to native dev for a while...

<comment><USER2> IMO, every attempt thus far has approached cross platform entirely the wrong way. They're all way too focused on providing deeply custom UI. I believe that it may better to instead abstract app navigation as its own separate thing, making it a setting in a config file (e.g. tabbed, hamburger, split-pane tabbed, etc) and restricting UI coding to individual screens, which would have style hinting abilities and could be built via any number of platform agnostic (and perhaps language agnostic) ways. All this would then compile down to native UIKit, Android SDK, UWP, AppKit, etc.

So the idea would be you program your app's individual screens, throw in some styling, select platform appropriate nav schemes (hamburger for android and tabbed for iOS for example) and hit compile to generate native per-platform project files+code.

This sort of solution wouldn't cover more complicated navigation schemes or use cases that actually require highly custom UI, but if you're doing either of those you've probably outgrown any kind of cross platform solution anyhow. Realistically I believe this would work well for probably 80-90% of non-game apps and wouldn't suffer many of the drawbacks that usually come with "silver bullet" style cross-platform setups.

<comment><USER3> Or you could abstract out the model, networking, persistence, and other services logic from your app into a reusable library,—and then consume _that_ from a native, unshared frontend.

I'm hoping that Swift becomes sufficiently viable on Android that I can reuse library code across iOS and Android sometime in the next few years.

<comment><USER4> Looks like Kotlin gets the lead in this area with Kotlin Native.

Jetbrains moves pretty fast and the integration works surprisingly well for something this young.

<comment><USER2> As great as jetbrains is, I think Swift has much better long term potential in terms of FOSS tools. The Swift language server Apple is currently working should bring an open tooling avalanche.

In fact I think the high quality of jetbrains IDEs might actually impede Kotlin tooling development… why bother when first party tools are so good?

<comment><USER5> The thing is, developers outside of Apple platforms don't really adopt Apple techs. Objective C never took off and the same seems to be happening to Swift. I don't know anyone using it on Linux.

<comment><USER2> Objective-C's cross platform use was crippled due to half of its essentials being tied up in Cocoa. Objective-C by itself doesn't even have memory management.

Swift doesn't suffer this issue — it's been built for multiplatform use from day 1. There are still some discrepancies, but today Swift on Linux is about as usable as Swift on Apple platforms. There's even several (4+ last I checked) modern web frameworks for Swift and even GTK+ bindings.

On top of this, its Windows port recently reached a useable state and there's work being done on a Win32 bindings. Once that's done, it will be possible to write an app with a common core and 3 different UI layers all in Swift which connects to a web API written in Swift. That's already leagues beyond what was ever achieved with Obj-C and momentum is continuing to build.

<comment><USER5> Ok. But the questions now is: why would you adopt it?

You could use Java/OpenJDK or even Kotlin/OpenJDK.

You could use dotnet core.

You could use Node.js with Typescript.

Or Python/Ruby/PHP/...

All those are mature and support all major operating systems way better than Swift does.

I'm not sure what Swift's Unique Selling Proposition is. From where I'm looking it seems to be: "it's backed by Apple".

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Here's another performance comparison (2018). It compares Flutter to native iOS app. Flutter consumes 2x more CPU and memory for an app with 60fps rendering.

[https://medium.freecodecamp.org/how-fast-is-flutter-i- built-...](https://medium.freecodecamp.org/how-fast-is-flutter-i-built-a- stopwatch-app-to-find-out-9956fa0e40bd)

<comment><USER7> Flutter has had a lot of performance improvements since that date. It'd be great to see that updated compared to current version

</comment></comment><comment><USER8> Correct me if I'm wrong. But it's possible to mix native with some Flutter + RN for laying out views right? I'm pretty sure that's what Instagram does (mainly in Obj-C but some views are in RN) and Snapchat (Flutter). Doing this would make sense when running apps on both platforms yea?

</comment><comment><USER9> How does this compare with the new RN architecture coming in? Does anyone know what kind of gains we can expect?

</comment><comment><USER10> It is quite unfortunate no one cares about the Android on iOS monstrosities this framework creates.

</comment><comment><USER11> what about nativescript?

<comment><USER12> I was just looking at NativeScript and would love to hear about experiences developing production apps with it.

We have a pretty large javascript web app code base and have built both native and React Native ports. Both of which have had more cons than pros for us. So we ship on mobile as a web app.

The holy grail for us would be to use our javascript library code underneath native UIs (that we write ourselves) for both iOS and Android.

<comment><USER13> Just try it.. it's great</comment></comment></comment>


Layoffs Reach 23andMe After Hitting Mozilla and the Vision Fund Portfolio - <AUTHOR> https://techcrunch.com/2020/01/23/layoffs-reach-23andme-after-hitting-mozilla-and-the-vision-fund-portfolio/ <comment><USER2> Why is nearly 100% of all articles from techcrunch ? feels like some concerted effort to generate ad revenue</comment>


Show HN: RetroClip – Instant Replay for Your Mac - <AUTHOR> https://www.realartists.com/blog/retroclip-instant-replay-for-your-mac.html <comment><USER2> Hi, I'm James and I wrote RetroClip. It's just a little side project, but I think it's neat and so I decided to release it.

I really enjoy technical how it's made blog posts, and I also enjoy elaborate desktop UI recreation web pages[1], so I made both for this project and I hope you like them. If you've got any comments or questions, I'll be pressing Cmd-R on this page.

[1] [https://www.realartists.com/retroclip/](https://www.realartists.com/retroclip/)

<comment><USER3> How does this work with multiple monitors? Can I request the option for more control & longer record times? i.e. be able to set it any where between 1s-600s?

For context I downloaded OBS as much like you I was playing Fortnite BR and getting tired of having only static screenshots showing my win. OBS is ok but a performance hog. So your program looks awesome except 60 seconds is to short, sometimes the awesome play I want to share took longer than 60 seconds..

Also I play using an egpu on a second monitor so I only want to record that monitor playing. No reason to record the monitor showing discord.

Edit: I see you recommended quicktime for videos over a minute but as you've mentioned that takes up way too much diskspace to just leave running while you're playing. So I'm really hoping for some more options on the recording length.

<comment><USER2> I mean, I could do longer, it just takes more memory. 120s is probably doable though.

<comment><USER3> If I understand correctly increasing the duration just increases the amount of ram required right? How much does 60 seconds take on average?

Personally I'd like to set it to 5 mins which is what I have it set at for OBS's replay buffer. I find its much easier to trim a video than it is to merge multiple videos together.

I guess what I'm really asking is what are the real downsides to giving the user custom duration controls. So long as you provide the appropriate warnings / dialogs in a text box underneath the selections (OBS does that)? It seems like that would only increase the utility of product.

TLDR: Awesome piece of software that I think would be made even better if you gave the user more flexibility with custom durations.

</comment></comment></comment></comment><comment><USER4> Wow! This could be awesome for QA work. So often our QA team will manage to get our software into some weird state but not be entirely sure how they got there. If they used this they could hit the keyboard-shortcut to save the last 60 seconds as soon as they got to the error or weird state.

I've sent them the link!

<comment><USER5> That's a great use case and I could really use that right now.

Now if retro clip could also record keystrokes* and mouse clicks that could be even more helpful.

* OK, maybe keystrokes is a security issue? Not sure.

<comment><USER6> You could use something like xnee: [https://www.gnu.org/software/xnee/](https://www.gnu.org/software/xnee/)

<comment><USER7> That says X11. Not going to work on macOS's Quartz.

<comment><USER6> Oh, you're right. I was thinking about linux for some reason.

</comment></comment></comment></comment></comment><comment><USER8> Ooooh this could be pretty fantastic for user debugging. Instead of "can you recreate that problem?" Just hit the keys and send the clip of what they were actually doing.

<comment><USER9> For a better integration the replay would show logs (for a desktop app: the logs of the client machine, for a web-app: HTTP logs) at the same time the video is playing.

E.g. a webmail app, if I click a particular email I get an exception, when the programmer who is debugging the problem is viewing the video, he would see what the server logged a few seconds after I caused an XmlHttp request through my click..

</comment></comment><comment><USER10> How about an option to make the Notification Center alert open the saved Finder location, rather than opening the movie in Quicktime?

Much easier to do something with the clip file, and you still have the easy (and perhaps better) option to watch it with QuickLook.

<comment><USER2> I'll think about it. In the meantime, I have a few pro tips that may be useful.

One trick is you can drag the icon from the QuickTime's window's title bar (or command click on it to reveal it in the Finder). Along with the ability to drag things while doing Cmd-Tab and Cmd-` that was added to macOS at some point, it makes it fairly easy to do drag and drop to other apps.

You can also use the Open Clips Folder menu item in the RetroClip menu.

Finally, you can also just disable the banner for RetroClip using the notification center system preferences and have it be stealth, just like screenshots are, and then just navigate to the ~/Movies/RetroClip folder in the Finder directly.

</comment></comment><comment><USER11> Fantastic work. I wish there was something similar for Linux. it sounds like you've made something that has minimal overhead.

I like the mouse-pointer hack, I guess you could take it further by only adding it when the user wants to save the clips (and it gives the option of having no mouse pointer, or maybe hiding it around the time when the mouse is not moving or being clicked).

<comment><USER2> I thought about that, but the problem is, I would have to decode and then re- encode the video on save to composite in the mouse cursor. As far as I know, there is no way to quickly and non-destructively composite an image on top of h264 video.

<comment><USER2> I should add, though, the idea of storing the mouse cursor separate from the captured video is a really good one in general. I am pretty sure this is what ScreenFlow does, because you can edit the mouse cursor in their app after a video has already been recorded. The tradeoff is that they need to spend more time and space during the recording phase to get really high quality source video, and then they have an additional export phase when you want to save the video out that does the rendering and lossy compression. That tradeoff is no problem for them, but doesn't fit RetroClip's use case.

</comment></comment></comment><comment><USER12> Does it record audio as well? This, to me, is the biggest downfall to recording desktops on Macs.

<comment><USER2> It doesn't. For some reason, which only the CoreAudio team could explain, it is necessary to use a kernel extension to capture system audio on macOS. Kernel extensions are not allowed in the Mac App Store (and rightly so), so having it just work is unfortunately not possible.

That being said, I could easily add a feature to record any other input device on the system, and then you can install the Soundflower kernel extension (or one of Rogue Amoeba's other excellent utilities) to create a loopback audio input device.

I always watch short video game replays with the audio off or on gfycat or whatever where there is no audio anyway, and for capturing bug reports or whatever I don't need audio either, so I didn't feel like I was missing much without audio for myself.

All that said, if the CoreAudio team would come to their senses and provide a userland API for doing system audio capture, I would definitely be on that.

<comment><USER13> Monosnap records video and audio, and is available on the App Store. I don't know offhand if they record off the built-in mic or if they hook the audio stream some other way, however.

[https://itunes.apple.com/us/app/monosnap-screenshot- editor/i...](https://itunes.apple.com/us/app/monosnap-screenshot- editor/id540348655?mt=12)

<comment><USER14> [http://blog.monosnap.com/how-to-record-video-with-the- system...](http://blog.monosnap.com/how-to-record-video-with-the-system- audio/) \- here the guide how to record system audio.

</comment></comment></comment></comment><comment><USER15> > I got the idea to write RetroClip after playing the game Fortnite Battle > Royale and winning, and then having nothing to show for it besides a static > screenshot.

You should try Shadowplay or the equivalent from your GPU vendor :) Great job on the project.

<comment><USER16> OP is a Mac user - Nvidia Shadowplay and AMD ReLive only work on Windows.

</comment></comment><comment><USER10> Can you expand a bit about your decision to ship this in the Mac App Store vs. outside? Especially if a non-App Store build could get you things like audio recording.

<comment><USER2> Our main product we do sell outside of the app store. It's a much bigger and more complex app, and I like not having to pay Apple a 30% cut on it, and I also like the ability to push updates whenever I need to without having to do app review.

That being said, what I like about the App Store, and I'm just getting my feet wet on this with RetroClip, is that I think it's easier for users to trust you on the App Store. The app sandbox gives people some confidence that an app is going to be well behaved, and if it isn't then Apple can always pull it from the store. That's not to say that our non-App Store stuff isn't well behaved, it absolutely is and we take it very seriously, but being in the App Store maybe makes it easier for users to have confidence in us.

I also think the in-app-purchase trial-ware model that a lot of developers (myself included) are starting to adopt on the Mac App Store makes a lot of sense to me. Even $5 is a lot to pay for software if you can't try it first, and I think that was a big problem early on with paid software in the Mac App Store.

<comment><USER17> If the target audience is gamers and QA-types of people, I don't think they will care where they get it from.

</comment></comment></comment><comment><USER18> Really nice. What's the original intended use?

<comment><USER2> Thanks! My original intended use was to win at video games (or at least fail in amusing ways) and then post the replay clips to Reddit ;)

It's also useful for software development. If I had a nickel for every time I got a screenshot in a bug report but incomplete repro steps, I could probably buy a sandwich. So being able to retroactively get a video of what happened can be super useful.

<comment><USER18> Amazingly useful, I would say. Two use cases I hadn't thought of.

(Actually I just thought about jokes.)

</comment></comment></comment><comment><USER19> This is very slick and easy to use. You sell it well by comparing it to the features on modern game consoles. I'm not sure when/if I'm going to use it, but I like the idea that it's there if I need it!

My only criticism is it adds yet another menu bar item, but I understand the reasons why that can be useful (and apps like Bartender mitigate this somewhat)

<comment><USER2> Thanks! I totally hear you about the menu bar. I used to laugh at Windows machines with all the crap in the system tray, and now look what I've become.

</comment></comment><comment><USER20> I'm on a Mac running 10.11 at the moment, so cannot test (10.12 or later is required), but are the only choices for capture length 30 and 60 seconds? Would be nice if this could be set by the user. Though for longer recordings, would RetroClip offer any advantage (performance, file size, etc) over QuickTime Player's built-in Screen Recording feature?

<comment><USER2> If you want to do a longer recording and you want to keep the whole thing (or substantially the whole thing), QuickTime Player is better. I also use, and love, ScreenFlow for doing screen cast type videos. The difference is, I'm not going to leave QuickTime Player or ScreenFlow recording all day because of disk space concerns.

As for 10.11, it probably would work if I just changed the target OS, but for a little side project I didn't feel like going through the trouble with testing 3 operating systems.

<comment><USER21> How about an option for 5s or 10s? Kind of funny the non-pro version can do 5s but the pro can't!

</comment></comment></comment><comment><USER22> What's the actual video format? I mean, my knowledge is a bit dated, but don't codecs like x264 usually have I B and P frames so you couldn't cut at an arbitrary frame without reencoding. Do you just emit I frames or does x264 have some more advanced tricks available?

<comment><USER2> It's not just I (key) frames. That would be really bad for quality or data rate. There's an I frame every 1 second, which gives me a place to cut. In general, not just for RetroClip, having I frames is important as it will allow for efficient scrubbing through the video in a playback application.

<comment><USER22> Ah right so you technically don't save exactly 60.0 seconds, but I guess that's OK ;)

Like I said my knowledge of this stuff mostly dates back to mpeg2 days and I could have sworn the I frames were further apart, except on scene cuts.

<comment><USER2> I actually pad it to avoid coming up short :)

</comment></comment></comment></comment><comment><USER23> This is pretty cool, but I'm seeing RetroClip take 300% CPU on my Late 2015 Retina 5K iMac. I thought it was maybe because I was watching a Twitch stream, but it still used 300% CPU when I paused it, when the only thing actually changing on the screen from frame to frame was a tiny animated GIF.

<comment><USER2> Wow, that's not expected. Can you grab a sample[1] for me? I'll see if I can find an iMac somewhere I can test on.

[1] [https://developer.apple.com/legacy/library/documentation/Dar...](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/sample.1.html)

<comment><USER23> When I sampled it earlier it was doing a bunch of stuff in VideoToolbox. I'll check again when I get home this evening.

<comment><USER2> Thanks. Sounds like we might have failed to open the hardware encoder and fell back to software encoding for some reason. I'm going to try to get some time on an iMac tomorrow and see if I can recreate the problem.

<comment><USER23> Ok I took a sample. [https://gist.github.com/kballard/636fa3f6c09d6fc6e2a2a1efa33...](https://gist.github.com/kballard/636fa3f6c09d6fc6e2a2a1efa3354cc9)

I also checked the Console. Here's what I found:

      default	19:55:42.767418 -0800	RetroClip	GVA info: preferred scaler idx 1
      default	19:55:42.769327 -0800	RetroClip	AVD encoder error: kAVDPictureEncode CreateContext, unsupported resolution 5120 x 2880
      default	19:55:42.808188 -0800	RetroClip	Using metal device <BronzeMtlDevice: 0x7f80bf037200>
                                                                name = AMD Radeon R9 M395X
      default	19:55:52.609993 -0800	RetroClip	LSExceptions shared instance invalidated for timeout.

<comment><USER2> My hero! Sounds like I should do some scaling for these 5k iMacs. I got away with up to 3840x2400 resolution just fine in my testing on various macbook pros, but I don't have any iMacs. I'm gonna go try one at the Apple Store tomorrow (not buy obviously, I'm way too cheap for that, but just use it for a minute).

EDIT: Yeah, I'm pretty sure 3840x2400 is the max supported by any recent Intel CPUs, and older ones are less. The iMac Pro might be a special case because I hear it uses its GPU for H.264 encoding. Anyway, querying what the max is for a given machine and then scaling to fit it was an easy fix. Hopefully I can get it deployed to the app store soon.

<comment><USER23> Finally just relaunched it again after the updates. it's now taking 10% CPU while watching a Twitch stream and 1–3% CPU when not. That's _much_ better than 300% CPU :D

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I'd love to purchase the Pro but I can't see the price anywhere. Nothing in the App Store or even when I click "upgrade to Pro" in the app itself no information on how much it's about to charge me.

<comment><USER2> It's $5. I'm going to make it more clear in the next update.

<comment><USER24> Sweet thanks man. Love the simplicity

</comment></comment></comment><comment><USER25> I always wanted something like this for video, rather than just audio:

[http://plugin.org.uk/timemachine/](http://plugin.org.uk/timemachine/)

Thank you. I'll give it a try.

</comment><comment><USER26> "Current generation video game consoles all have a feature where you can press a button and capture the last minute or so of gameplay and I wanted this for my Mac."

PS4 can record up to an hour, fyi.

</comment><comment><USER27> can't wait for the Mr. Robot episode where RetroClip is mentioned and the hackers use the last 60 seconds of someone's screen without their knowledge.

<comment><USER2> Well, it's totally sandboxed, no network connections are allowed either in or out, and the video is only stored in memory, not on disk until you press the keyboard shortcut, so it should be pretty secure.

</comment></comment><comment><USER28> This is actually a feature in the Nintendo Switch too. It will save the last 30 seconds of footage prior to you invoking the capture input.

<comment><USER2> Yeah, my 4 year old son loves to spam the capture button. We have soo many Mario Kart clips.

</comment></comment><comment><USER29> Cool. I actually wrote a golang project to do this on OSX. And then convert it to a gif.

</comment><comment><USER30> Is there anything similar for Windows?

<comment><USER2> Yes! Check out the Xbox app for Windows 10. GPU drivers also provide a similar feature (nvidia's is called shadowplay).

</comment></comment><comment><USER31> Are the streams or mp4 files being uploaded anywhere? Any transparency you can offer about this not potentially causing privacy issues?

<comment><USER2> It's totally sandboxed. It can't make network connections, in or out at all. You can verify this yourself like so:

      $ codesign -d --entitlements - /Applications/RetroClip.app
      Executable=/Applications/RetroClip.app/Contents/MacOS/RetroClip
      ??qq?<?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
        <key>com.apple.application-identifier</key>
        <string>EL9BUK3ZCV.com.realartists.RetroClip</string>
        <key>com.apple.developer.team-identifier</key>
        <string>EL9BUK3ZCV</string>
        <key>com.apple.security.app-sandbox</key>
        <true/>
        <key>com.apple.security.assets.movies.read-write</key>
        <true/>
      </dict>
      </plist>

</comment></comment><comment><USER32> Very cool idea</comment>


Ask HN: As a Linux Admin doing DevOps, which CS algorithms do I need to know? - <AUTHOR> I've been at this for about 4 years now and steadily gaining experience with scripting in Python, various cloud providers, and their APIs and services. What I have been confused about, however, is companies that ask during interviews about optimizing code with more efficient sorting algorithms, or using some random question from HackerRank. What am I missing here, is this knowledge actually expected for a Linux Admin that likes automating things, or is it just random trivia you're expected to know? <comment><USER2> It is a trend in non-technical positions to ask faux coding problems that sound like tech questions from a CS class, then ask a technical expert if the answer is better than the original code. Originally it was supposed to be for developers to show that they know some basic programming out of college. It morphed into an easy to administer test that was applied to all technical applicants. The questions became harder.

That trend is starting to die off from what I've seen.

You might have some luck asking about the technical requirements for the position. Admins may use a bit of code, but it is usually not a core component of their job.

You could also point out that this type of question strongly favors recent college graduates at the expense of self taught and discipline transitioning workers. It can be construed as a form of age discrimination by motivated lawyers.

</comment><comment><USER3> This is just companies being bad at interviewing. I have never in 20 years as a programmer implementing a sorting algorithm on the job. And it's completely irrelevant to operational work.</comment>


Ask HN: How long will it take to make an iPhone app w/ no experience? - <AUTHOR>

I'm a programmer. I know Java, Python, Ruby on Rails, Javascript/CSS, but I have no experience developing iPhone apps. I know it uses Objective C, and Cocoa, but other than that, I don't know anything else.<p>Let's say I want to build an iPhone app that's fairly complex to use, such as an app that keeps track of spending and budgeting. Suppose I have 4 hours per day to work on this. How long do you think it will take me to complete the entire app (from learning Objective C, design, implementation, etc)? <comment><USER2> Just quoting a time is not much use to anyone, so I'll try to give info about the first app I made:

Working full time with no prior experience in objective c or cocoa, it took me 3 weeks to build an app that is essentially a sign up form used at trade shows on an iPad. It stores all submissions in a sqlite database, and pushes them to a custom API. Also uses a postcode database to find the nearest center to the user's postcode.

Having said all that, I too would recommend phone gap.

</comment><comment><USER3> You might want to consider leveraging all that knowledge you already have with something like <http://www.phonegap.com/>

<comment><USER4> Phonegap <https://build.phonegap.com/> \+ JQuery Mobile <http://jquerymobile.com/demos/1.0a4.1/>

</comment></comment><comment><USER5> I'd say 2-4 months, depending on how fast you learn stuff. If you are used with C it makes things much easier

</comment><comment><USER6> 6months

</comment><comment><USER7> two months</comment>


Proposal to limit H1B visa extension to 6 years - <AUTHOR> http://www.mcclatchydc.com/news/politics-government/white-house/article192336839.html <comment><USER2> Can this be a boon to rest of the world. Trump gift to all the new tech hubs outside US.

I understand short term it will be a pain for people like me but long term I think this might be the right to break US monopoly in technology sector.

<comment><USER3> I think main problem is of resources in other countries. In US you can get funding easily.

What you think about it

<comment><USER4> Funding will move to those places as well. Google, Facebook have already invested Billions in Canada and China in last 1 year especially for AI.

Most countries are behind by say 5-10 years compared to USA but they have more people. An AI center in Shanghai can produce lot more in next 20 years than something in Bay Area. Lowerver birth rates in USA means USA is nearly assured to lose its competitiveness.</comment></comment></comment>


Mind-altering substances and programming - <AUTHOR>

Wired's article "LSD: The Geek's Wonder Drug?" got me thinking that drugs and programmers may be more common than I had previously thought. <p>Has anyone ever used any sort of drug while programming? What were the results? <comment><USER2> Programming isn't enough of a drug on its own? I get high when a cool hack works.

My operating systems course in college had a liquor cabinet in the CS lab (we needed it). I wrote a good portion of our final project while tipsy. Oddly, it didn't seem to make much of a difference.

Other than that, no. I'm a square.

</comment><comment><AUTHOR> I've found that smoking marijuana has a positive effect on my programming sessions. I feel as though I can see every single line of code at once. It makes for a nice coding experience.</comment>


Love Him Or Leave Him, Some Solid Advice From Guy Kawasaki - <AUTHOR> http://howtosplitanatom.com/news/how-to-chat-with-guy-kawasaki/

<comment><USER2> I laughed all the way through, love the bits about the consultants and 25k mission statements!

</comment><comment><USER3> great!</comment>


Western Digital's Advanced Format: The 4K Sector Transition Begins - <AUTHOR> http://www.anandtech.com/printarticle.aspx?i=3691

<comment><USER2> hdparm tells me "Logical/Physical Sector size: 512 bytes" but this article tells me:

 _Unfortunately, at this point the utility also serves as the only way to identify an Advance Format drive without physically looking at it. Looking at the ATA spec, it looks like there's a provision for asking a drive its native sector size (regardless of 512B emulation) but at this point there's no such tool beyond the WD Align utility itself._

So did hdparm just guess ....</comment>


Simplify MySQL development with JavaScript - <AUTHOR> https://github.com/ayoubserti/js-mysql <comment><USER3> Or use postgres and be able to import the binary table files on another install for DR.

<comment><AUTHOR> I'm not sure about what you're talking about. But here, if you didn't get the idea, is a MySQL plugin to execute JS script inside database. It's helpful for sort of task that seem to be tedious for SQL; like creating small CRC algorithm, advanced JSON manipulation/lookup...

My motivation behind is: simplify SQL queries by delegating all expensive calculation to Javascript layer.

I found the great use-case is when mixing JS with Trigger.

<comment><USER4> as the maintainer of plv8, I wish you all the luck in the world dealing with v8 being a build requirement, as well as distribution and the fairly regular build system changes as well as API changes inside of v8 itself.

<comment><AUTHOR> Thank you @jerrysievert. I had already been faced to those issues. API changes doesn't really matter unless you want to keep running behind Google V8 team and there dreams about JS implementation and tuning.

In the other hand, I totally agree with. the build requirement is a mess and not everyone may have the nerves and passion to build V8. That's way I provide a small piece of shell script to build v8 locally as well as pre-built static library stored in an Amazon S3.

<comment><USER4> one suggestion I have, since I noticed that your build script to build from source seems to check out master, is to pin to a specific version of v8 - <USER2> makes it a bit easier than trying to keep up with a moving target :)

<comment><AUTHOR> Ah yah, Thank you.

Even internally I use brew'd, apt-get'd and nuget'd version for build. I want that my plugin compile faster ;)

The v8 build script is kept for advanced user and potential contributors ;)

<comment><USER4> you should probably check the versions - if memory serves, the brew and nuget versions of v8 are pre 6.4.388.14 (which is I believe the version that fixes the spectre/meltdown issues), and apt-get usually installs 3.14, which is way way way old (5 years?)

just checked, nuget is 6.4.388.11, brew is 5.1.281.47 - do your users a favor, and get this updated asap.

plv8 uses 6.4.388.40, which is fairly safe, but requires a build from source.

FYI, my email is in my profile, if you want to move this off of hn.

<comment><AUTHOR> You're right brew check out version 5.1. but in apt-get I use another ppa which brings version 5.9

Where can I find your email!?

<comment><USER4> jerry (at) legitimatesounding.com</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Bitcoin and Ethereum Fall Substantially in $18B Crypto Market Wipeout - <AUTHOR> https://finance.yahoo.com/news/bitcoin-ethereum-fall-substantially-18-114225729.html <comment><USER2> I don't play short selling, but if I did I'd be watching Tesla as well.

There are a lot of signs pointing to a broad decline-- rate inversion, historical highs for P/E, etc.

IMHO, caution is warranted.

</comment><comment><USER3> Is there any real-world application for cryptocurrency, except for ICO scams and a colossal waste of power?

<comment><USER4> yes. Ask Jack Dorsey, here YC, Steve Wozniak, the owner of NYSE, G20, IMF, Andressen Horowitz, the CEO of Techcrun ch, IBM, Microsoft and many other prominent tech community members of why they think it's revolutionary if you don't get it's uses/benefits.

you can start from [http://a16zcrypto.com](http://a16zcrypto.com)

<comment><USER5> real. world. application, he said :)

<comment><USER4> you mean something like this?

[https://www.cnbc.com/2018/08/10/world-bank-picks- commonwealt...](https://www.cnbc.com/2018/08/10/world-bank-picks-commonwealth- bank-for-worlds-first-blockchain-bond.html)</comment></comment></comment></comment>


What OOP Isn't - <AUTHOR> http://hacksoflife.blogspot.com/2010/12/what-oop-isnt.html <comment><USER2> I like how he doesn't even try to defend his stance that inheritance is completely worthless. I would have said it's a LOT more useful.

<comment><USER3> Implementation Inheritance is a massive can of worms, and a surprisingly emotional topic, but I feel fearless today. How do you feel it is useful?

<comment><USER4> off the top of my head: dynamic dispatch is a great way to re-use code, assuming the subclasses really have a "is-a" relationship.

this makes for a double whammy in terms of extensibility, since not only is the code literally more conducive to later changes, but it meets developer's expectations, too.

encapsulation and inheritance go hand-in-hand in my book, though i suppose encapsulation, and the necessary concept of interface contracts, is an axiom of sorts from which many other good practices can result, especially if there is also a culture of "communicating for extensibility by new developers later."

<comment><USER3> My experience is almost the exact opposite of yours! The first problem is that the expression "is-a" is notoriously vague. If class A has method a, and class B subclasses a, can B override method a? In what sense is B an A if it does not obey Strict Liskov Substitutability?

The second problem is that re-use is an easy problem to solve in any language. We have delegation, we have proxies, we have so many tools. Why use inheritance, which mixes two different concepts (is-a and was-a a/k/a is- implemented-using)?

Lastly, how is the code more conducive to later changes? In my experience, you now have a problem where changing class A changes the behaviour of every class that extends A. This is a notoriously tricky problem in the real world. In theory, that change ought to change every subclass and inheritance is a win. In practice, the people writing all those subclasses did so making assumptions about the behaviour of A at the time it was written, much as there are billions of lines of windows code that depend on its bugs and break the moment you fix a bug.

Encapsulation is a wonderful thing. I do not see implementation inheritance as having anything whatsoever to do with encapsulation. If anything, I see the opposite.

If I write that B is-a A, if these things are fully encapsulated, shouldn't it be a black box as to how B manages to behave exactly like an A? Maybe there's some shared code, but then again, shouldn't it be possible for B to use some other completely different implementation? That's encapsulation to me. Forcing interface inheritance to be twinned with implementation inheritance _breaks_ encapsulation in my opinion.

<comment><USER5> I completely agree with your point. The way inheritance is always taught is through the "is-a" rule of thumb and I think that's so detrimental to the students that they'd be better off if they didn't know inheritance existed. The phrase "X is-a Y" often appears to make sense because of the real world (e.g. "Cat is-an Animal"), but it makes people forget that it may not make sense in the world they are trying to model. It may be that the relationship between a Cat object and an Animal object is completely different in your system than in the real world. If it is, then you run into the problems with future changes you already mentioned.

I also second your point on code reuse. Code reuse/removal of duplication is the main reason behind all programming languages and paradigms. Inheritance is a tool provided by OOP languages. Therefore, to say that it enables code reuse is basically trivial.

<comment><USER3> I have discovered a truly marvellous follow-up to your comment, which this box is too small to contain.

[http://github.com/raganwald/homoiconic/blob/master/2010/12/o...](http://github.com/raganwald/homoiconic/blob/master/2010/12/oop.md#readme)

<comment><USER5> Yes, absolutely. Thinking about design in terms of defining an ontology is a great insight. Every object has a name and is therefore a part of some sort of semantics. However, what it does (it's meaning) is up to the designer. Therefore, words are naturally overloaded - they represent what we they do in reality, and their analog in our system.

As an example, let's assume we're developing a game where cats battle all sorts of other animals for survival. Certainly, the designer has good reason to call the object representing the protagonists in the game Cat. The programmer also has good reasons to call the enemies of the cat Animals, since they will all do the same thing (e.g. attack the cat). However, in this case a Cat is definitely not an Animal. Cat is an overloaded word - it no longer means "feline". Similarly, Animal means something completely different - it's more akin to "enemy". If we could substitute the "natural" ontology of these words with the one our objects define, we would be able to tell that the statement "A Cat is an Animal" is senseless.

I think OOP actually tries to take advantage of the "natural" ontologies we have constructed through experience. This is why this is such a subtle design issue. I'm not quite ready to say it "gets it backwards", but it certainly doesn't mirror the way we naturally look at the world.

I hope I'm mirroring and expanding on what's been said here. I'd love to read your thoughts.</comment></comment></comment></comment></comment></comment></comment>


Adobe sues Forever 21 for pirating Photoshop - <AUTHOR> https://www.theverge.com/2015/1/29/7948241/forever-21-pirating-photoshop-adobe-corel-autodesk

<comment><USER2> I think that, in some sense, this represents an unavoidable consequence of Adobe's "rental only"[1] system of selling their software. While the ability to rent can be a good thing for some users, many people (including businesses), don't want to pay an _effectively infinite_ cost for software.

Now, I'm not advocating piracy here -- the best thing that could happen is that a competing company crops up and knocks down Adobe using good old fashioned competition.

[1]: [http://arstechnica.com/information- technology/2013/07/photos...](http://arstechnica.com/information- technology/2013/07/photoshop-cc-modest-upgrades-shackled-to-terrible-rental- model/)

<comment><USER3> > many people (including businesses), don't want to pay an effectively > infinite cost for software.

It's not like Adobe is the only software provider in the world and there's a complete in-existence of competing products.

If you dislike the practices of a company, go to the competition with your money. Committing crimes won't solve your problems in the long run,

<comment><USER2> > If you dislike the practices of a company, go to the competition with your > money. Committing crimes won't solve your problems in the long run,

So, you mean _exactly_ what I wrote in the second paragraph of my original comment? Perhaps you should read entire comments before disagreeing with them.

</comment></comment></comment><comment><USER4> Apparently this article has been removed after it was published. (And quite sloppy too, because Firefox is detecting a infinite redirect loop after you click the link)</comment>


Tensorflow and monetizing intellectual property - <AUTHOR> https://stratechery.com/2015/tensorflow-and-monetizing-intellectual-property/ <comment><USER2> This is really insightful!</comment>


Greplin (YC W10) open sources exception collection system - <AUTHOR> https://github.com/Greplin/greplin-exception-catcher

<comment><USER2> Similar to something we made at Disqus: <http://readthedocs.org/docs/sentry/en/latest/index.html>

<comment><USER3> Sentry and Greplin look like they have a extremely similar feature set. It would be interesting to see a comprehensive comparison between the two.

<comment><USER4> So does getexceptional.com (from the RoR world). I ended up writing an adapter for pylons (pylons-exceptional) because an API for this kind of stuff means one less thing to deploy and worry about.

</comment></comment></comment><comment><USER5> This looks really useful.

In the coming weeks i will try and use it in one of the apps i am building on tornado.

Kudos to Greplin.

Just one question. I see Tornado related repos in Greplin Github account. Are you using it in one of your Tornado apps ? In that case any gotchas regarding blocking ?

<comment><AUTHOR> We do use it in Tornado apps. We haven't seen any blocking issues so far as the time to write the tiny file is pretty small plus this happens on a small percentage of requests. It'd probably be worth looking in to an asynchronous model at some point though.

</comment></comment><comment><USER6> Looks like getexceptional.com too. I like this sort of stuff. Great job!

</comment><comment><USER7> How does this compare to Scribe?</comment>


Why I Switched to Linux - <AUTHOR> http://linux-news.org/index.php/2011/10/18/why-i-switched-to-linux/ <comment><USER2> I find it weird that people think there are a million ways in which Windows is insecure when in reality there's exactly one: it's popular. Pretty much all of the others are properties shared with every usable OS on the planet.

</comment><comment><USER3> This article is in desperate need of an editor... or at least a simple proofread. There are a few weird formatting mishaps and at least a few sentences that don't make any grammatical sense.

</comment><comment><USER4> Pretty light-on article, but it reminds me of my first encounter with linux around the turn of the century. Tried out (something), ran straight into dependency hell.

Left it alone for several years. In 2005, tried out RedHat. Ran straight into dependency hell.

In 2007 I started again... but by this time, Debian had matured the concept of the package manager, and my biggest hurdle was defeated. Thank you, Debian :)

<comment><USER5> FWIW, Debian's package manager (and its concepts of package repositories and dependency resolution) hasn't changed much since I tried it in 2001 -- and probably even earlier than that. Slackware and Red Hat were my first forays into Linux, and the dependency hell you speak of was enough to drive me to FreeBSD and OpenBSD in the late 1990s.

<comment><USER6> Accidentally downvoted you while trying to upvote. Sorry.

</comment></comment></comment><comment><USER7> What's up with HN today, is it 2006 day?

I was curious about the contents of a post with this title could be, given it's 2011. to my disappointment, there was nothing there that hasn't been featured on this kind of posts back when they were popular.

<comment><USER8> Ok, but the reasons to prefer Linux still hold today, right?</comment></comment>


Ask HN:Is our universe a computer simulation inside another universe? - <AUTHOR>

Today i've had a discussion with my uncle about entrepreneurship and human behavior, reaching to the subject of the Soul. I believe our soul is connected with the everything(or God if you want to say), and these question came to my head. Do you believe in God? if true, why do you believe in God? <comment><USER2> I used to, because I was brought up that way, and lived out my belief in a very concrete way by working for a time as a cross-cultural missionary. But I don't believe in God anymore, having at length reexamined the rationales I thought I had sufficiently examined while an undergraduate for either believing in God or not. (There is, of course, also the issue of WHAT to believe about God, as not all self-described believers in God believe in the same thing.) I have still have immense respect for persons who act out their beliefs at personal cost, but now I advise everyone in general to test their beliefs on all subjects against reality. Many of the online sources I read regularly to find interesting, thought-provoking articles for HN come from sites that have the point of view that people ought to spend more effort and care on examining their beliefs for truthfulness.

<comment><AUTHOR> I dont believe in what modern religion says, im saying "God" as all the energy that comes from i dont know where, energy we do not know who created it and that goes all over sign of life as a breath, a apple from a tree, a though from our brains, a whale in the sea...

<comment><USER2> As should be apparent, I was responding to the original title of the thread. But the reply would still be, what is the evidence for thinking this?

</comment></comment></comment><comment><USER3> Diplomatic business savvy response:

"I believe there is something more to life than what we perceive in our day- day experience."

*Then get quiet,

and leave the rest to questioners imagination.

End.

<comment><AUTHOR> In buddhism and ancient oriental religions people believe in what we called soul, which is basically the real esence of a human, a finding of ourselves in a real manner, not what we think, nor what we look. Talking with my uncle he said that 2 children of the same social context(same parents, maybe even twins, with the same time of life) are totally different each other. He said was genetically stuff, and i argued the reason was the soul they have. An alcoholic father is a good experience for their life for the more conscious, and a tragedy for the less conscious.

<comment><USER3> You filled in the blank perfectly, and regardless of whether one is a monotheist, polytheist, agnostic, atheist or the more ambiguous eastern philosophies (taoism, etc) the only thing that needs concern entrepreneurs socially (imho) are the constants that retain social order. That means learning to phrase and word things in a manner that retain those "constants" that keep people feeling "together" as opposed to "apart".

Focus on that and let everyone else "fill in the blanks" for themselves.

:)

</comment></comment></comment><comment><USER4> Isn't it such that we can never know for sure one way or another? Maybe a better question to ask is: how would you conduct your life differently if you did or did not believe in "God."

<comment><AUTHOR> Well, im experimenting with the smartest crowd ive met in my life, and i want to bear out my theory about entrepreneurs are more aware of their existence in this world compared with "normal people"

<comment><USER5> I don´t think an entrepreneur is more aware of its existence that an ordinary person, obviously indicates a greater capacity to meet needs or to innovate, all this due to living situations that led him to develop certain skills

</comment></comment></comment><comment><USER6> Ah my very favorite philosophical rabbit hole. I'm afraid I can't begin to answer this outside of a cozy pub and without a constant stream well crafted beer.

</comment><comment><USER7> A more interesting way to ask this question to the HN crowd might be: "Is our universe a computer simulation inside another universe?"

<comment><AUTHOR> Its seems you understand what im trying to say, thank you very much for this advice. I'll change it right now</comment></comment>


The Future of the Arch Linux Project Leader - <AUTHOR> https://www.archlinux.org/news/the-future-of-the-arch-linux-project-leader/ <comment><USER2> :O</comment>


Where to go after this prototype? - <AUTHOR>

I don't come from a development background so I hired a CMS (Joomla/Drupal) freelancer to get a very basic prototype made. Unfortunately, the person I hired was not able to finish so it's non-functional and it looks really plain. I can only use it as a mockup of some of the functionalities and portray the basic idea. It's in the social media space so user interface and design are important and I don't think the way it looks right now is very appealing. If I could get some funding to recreate it professionally in Rails, I believe I can really create something people want. Where do I go from here?<p>My goal was to try to articulate the idea with this mockup version and apply to some accelerator programs, but I haven't heard from 2 of them already. I plan to apply to a few other ones but I want to make sure I put the best foot forward and see the overall vision because this prototype does not do justice. I already spent nearly 2K on this prototype so I really can't afford to put more money in at this point. I just need someone else to believe in the idea with me and allow me to get some miniscule seed funding. Any ideas? What else can I do? <comment><AUTHOR> If I can't get any seed funding or get into some incubator after building this poor version mockup, is that time to go back to the corporate world?</comment>


Do We Need a New Pottery Barn Rule for Cyberwarfare? - <AUTHOR> http://globalguerrillas.typepad.com/globalguerrillas/2012/06/do-we-need-a-new-pottery-barn-rule-for-cyberwarfare.html

<comment><USER2> 1\. I thought I read that Flame was well targeted and had command and control systems to make sure it hadn't "violated the computers and networks of <i>countless</i> numbers of people and companies". I could be wrong but Flame isn't the latest botnet zombie creator spitting out $largeNumber of infections a second, it's more subtle than that.

2\. The Pottery Barn Rule may be A Good Thing(tm), maybe not. But it's pretty clear that (for better or worse, I don't want to debate the politics) the US government has no intention of following The Pottery Barn Rule when it comes to foreign policy decisions regarding the Iraq and Afghan conflicts. It's a rather weak premise to base your argument for a new rule on a past rule that's ineffective because the power in question ignores it.

<comment><USER3> I don't know about your first point, but the problem with the US Government and the conflicts we as a nation have entangled ourselves in over the last decade+ is that we can't even be bothered to even do the basic due diligence before jumping in.

Fundamentally, we ignored even the simplest tenets of 'The Art of War'. It's actually painful to read this after the fact. Powell knew this stuff and at it's core, the Pottery Barn principle is a couple of those AoW tenets boiled down into something everyone can understand.

In the end, if you can't even follow the sage advice that has been proved countless times over the last couple thousands of years, you've got bigger problems.

</comment></comment><comment><USER4> This wouldn't work though. The government is immune(or at least heavily protected) against things like class action lawsuits for this very reason. Unless we can get past this giant political and bureaucratic hurdle we won't be able to do much except throw money into our own security. Even then, how is the best persona/corporate security schemes and policies going to withstand something developed by the brightest mathematicians and security experts money can buy?

</comment><comment><USER5> ...if Flame contaminates my computer, the US government "owns" it? Rather poor choice of words.</comment>


Writing your first Vim plugin using Ruby - <AUTHOR> http://thecoffman.com/2010/12/writing-vim-plugin-ruby/

<comment><USER2> Vim needs to be compiled with Ruby support for this to work. If you're on a Mac, the default installation of vim is -ruby, but it's possible to run MacVim (which does have Ruby support) in terminal if you want to.

Nice writeup though.

<comment><USER3> Is it really that difficult working with vim's own scripting language? Or does it limit you in some way?

Requiring plugin users to have a ruby/python/perl enabled vim automatically reduces the potential userbase. And one of the benefits of vim is its widespread availability.

<comment><USER4> It probably isn't that difficult but why learn yet another language (vimscript) when you already know Ruby,Python,Perl,Tcl and Scheme? All of which can be used.

</comment></comment></comment><comment><USER5> I'm getting "502 Bad Gateway"

<comment><USER6> [https://webcache.googleusercontent.com/search?q=cache:http:/...](https://webcache.googleusercontent.com/search?q=cache:http://thecoffman.com/2010/12/writing- vim-plugin-ruby/)

<comment><USER5> thanks!

</comment></comment></comment><comment><USER7> IMHO the use of an embedded interpreter really only pays off for plugins that perform a more or less complex task like parsing or something that requires functionality that VimL doesn't provide like internet access or interprocess communication etc. For simpler tasks, I'd suggest to stick with VimL.

</comment><comment><USER8> Great. I've always wanted to write plugins. Would really appreciate if this could be followed up with a few more samples with some more functionality. Such as opening a small input window at the bottom for input and one for selection (as say in Command-T or fuzzy file finder).

</comment><comment><USER9> simple and short to get started, I like!</comment>


33 Ways to Stay Creative - <AUTHOR> https://plus.google.com/photos/111402256730704010676/albums/5629629870390513537

<comment><USER2> Good advice in general, but not sure that these would make one more creative. I'll add my favorite all-time suggestion on the subject, this post on structured serendipity:

<http://www.edge.org/q2011/q11_2.html#zweig>

In summary, read outside your area of expertise, and do it in new places.

</comment><comment><USER3> Printed and taped up in my cubicle. Thanks.

<comment><AUTHOR> It's tacked to my wall also :)</comment></comment>


Ask PG:What happened with the saved link? - <AUTHOR>

<comment><USER2> <http://news.ycombinator.com/item?id=85273>

<comment><AUTHOR> Thanks.

</comment></comment><comment><USER3> I liked it better when it was in the top navbar as well... now it takes an extra click for me to look at my saved links.</comment>


In Chicago, 70% of Covid-19 Deaths Are Black - <AUTHOR> https://www.wbez.org/shows/wbez-news/in-chicago-70-of-covid19-deaths-are-black/dd3f295f-445e-4e38-b37f-a1503782b507 <comment><USER2> Lower access to health care. Higher prevalence of underlying conditions, particularly ones correlated with Covid-19 mortality like type-2 diabetes. potentially lower ability to social distance (more reliance on public transport, only middle class people can buy two weeks worth of food at a time, etc.)

Would be interesting as well to see if there were large gatherings that accelerated transmission.</comment>


Dropbox tops paying subscriber estimates in first results since IPO - <AUTHOR> https://www.reuters.com/article/us-dropbox-results/dropbox-tops-paying-subscriber-estimates-in-first-results-since-ipo-idUSKBN1IB2W2 <comment><USER2> topping estimates, but down in after hour trading. hmm...</comment>


Ask HN: Where to Connect with Algo Traders? - <AUTHOR> I've recently started tweaking an algo trading bot I built from scratch.
I know being profitable is very very difficult. I'm not trying to be the next RenTec.. but I do want to get better.
Are there any chat groups or forums to connect with other algo traders and quants?
Looking for things a bit off the beaten path, rather than the traditional resources that show up in the top google results where people are asking the same generic questions.
I'm not so much looking for 'secret sauce' algorithms, rather to talk with others doing the same sorts of things. The mechanics, data feeds etc. <comment><USER2> Honestly I've found alot of help on specific questions on quant.stackexchange.com , also as another person commented - /r/algotrading will very rarely occasionally have good nuggets of info. If you ask a 'good' question there, you'll likely get some decent response.

</comment><comment><USER3> I went down a similar path with my "system" albeit hard to call it that but moreover an itch that needed scratched. I found both of these sites useful for bouncing ideas around with other like-minded individuals.

         nuclearphynance.com
         forum.wilmott.com

</comment><comment><USER4> Basically no one that knows anything shares anything substantial in this industry. You can dig for hints but won't find much.

</comment><comment><USER5> I would recommend [http://www.nuclearphynance.com/](http://www.nuclearphynance.com/)

Much less activity lately, but very good insights usually. Some finance / technical knowledge is necessary though - otherwise you will struggle to understand the topics.

</comment><comment><USER6> It's tough to find people willing to talk about anything substantial, because doing so gives away information that is otherwise giving them an edge over you ...

Quantopian has some forums, there's groups on LinkedIn, but there's very little discussion of actual techniques, even for fairly basic stuff.

</comment><comment><USER7> Join #R-finance on Freenode. Contrary to the name, the channel is a watering hole for all things quantitative finance, not just R. Several of the frequent members happen to be involved in the R community.

</comment><comment><USER8> r/algotrading is another resource</comment>


Apple Developer Survey Screenshot - <AUTHOR>

While looking to view the WWDC videos as referenced on HN, I got to see this little gem from the developer survey.
http://twitpic.com/1xmhje/full
What is interesting is the way the items are grouped. For example, as far as the survey is concerned, programming in perl, php, and python are equivalent. <comment><USER2> It's more odd to me that AJAX and Javascript are grouped in with Ruby and Rails.

Javascript and AJAX could be in the same item, but they are not specifically related to Ruby/Rails, at least no moreso than they are related to anything else on there.

<comment><AUTHOR> Well, of course, thats part of the whole thing. In my mind, the person is saying that Using(ajax) iff Using(rails), and that python, perl, and php on the web are all the same thing. The same goes for C#, except I guess it means you're a corporate guy. For Java, I assume it means you're from a corporate history of using Java.

</comment></comment><comment><USER3> They should probably use .NET or ASP.NET as technology options because C# is not a technology, is a programming language. (I noted this a week ago when I signed up as a Apple Developer)

<comment><AUTHOR> Yes, well, there is a certain amount of silliness that comes from thinking someone would be programming with something _other_ than C# for the web with .net. But yes, I do agree.

(Full disclosure: while an intern I wrote an application in VB.net for PennDOT to help manage all of the random light poles throughout the state. I wouldn't say it was my proudest moment.)

</comment></comment><comment><USER4> The more interesting aspect is that Javascript and Ruby are equivalent. At least perl/php/python are related.

</comment><comment><USER5> And Apple pays far too much attention to detail for this not to be deliberate somehow...

<comment><AUTHOR> IDK why you were downvoted, this is absolutely true.</comment></comment>


Yajl-ruby 0.5.5, now with a JSON gem compatibility API - <AUTHOR>

http://github.com/brianmario/yajl-ruby
The new JSON gem compatibility API is meant as a drop-in replacement for the JSON gem in your projects.
Simply replace "require 'json'" with "require 'yajl/json_gem'" and you're set!
yajl-ruby offers a more efficient, better RFC compliance and Unicode support over the JSON gem. I highly recommend anyone using the JSON gem to check it out. <comment><USER2> That looks excellent. Can't wait for Rails 3 with the new JSON support structure.

<comment><USER3> How does Rails 3 improve the JSON support structure?

<comment><AUTHOR> It introduces plug-able JSON back-ends, like the plug-able XML back-ends that exist today. It ships with JSON back-ends for the existing YAML implementation and the JSON gem. In addition to that _all_ of the plug-able back-ends (XML and JSON) support parsing from an IO as well as a string now.

technoweenie has written a Rails plugin adding yajl-ruby as a back-end at: <http://github.com/technoweenie/yajl-rails/tree/master>

I also have a fork that I'll keep up today with the latest API changes in yajl-ruby at: <http://github.com/brianmario/yajl-rails></comment></comment></comment>


Rust 0.6 RC is out - <AUTHOR> https://mail.mozilla.org/pipermail/rust-dev/2013-March/003402.html <comment><AUTHOR> You can find the list of changes here: <https://github.com/mozilla/rust/blob/incoming/RELEASES.txt>

<comment><USER2> Hmm, what happened to task::spawn?

        use task::spawn;

is failing in one of my example programs and I don't see this mentioned in the changelog.

Edit: OK, need to add "core::" in front, thanks dbaupp. There's another little Rust 0.5 program I'm trying to unbreak here - suggestions appreciated: <https://gist.github.com/graue/5282602>

<comment><USER3> Imports are now absolute, so

      use core::task::spawn;

</comment></comment></comment><comment><USER4> As a haskeller who's now stuck doing mostly nodejs, I've been eagerly watching Rust's development. One thing keeping me from using it is its immaturity and ecosystem. Is there any chance of a rustfix tool, akin to Go's gofix tool, being developed to lower the risk of using Rust today?

In general, well done guys.

<comment><AUTHOR> I'm only a big fanboy of Rust, I only have two patches in, and pay more attention than many, but I'm not aware of an existence of rustfix.

Personally, I don't think there's enough code 'in the wild' to justify this at the moment. With Go, Google was putting it into production from the first release, no?

<comment><USER4> I know its not there, was wondering if there were any plans. Its very much a chicken and the egg issue with "enough code 'in the wild' to justify this"

<comment><USER5> There's plenty of Rust code out there, even if much of it is in the Rust compiler itself :). I suspect the problem has been that many of the changes have been of a nature that don't make automated fixes easy (or necessarily desirable).

<comment><USER6> Yeah, it's hard to automate the fixes; most of the things gofix was used for is things like adding semicolons and changing method names. That said, I would definitely welcome a rustfix for the easier changes.

</comment></comment></comment></comment></comment><comment><USER7> As an aside, I have been using Go a lot lately, and I have come to really appreciate the clean, simple syntax. (Go isn't pretty, but it's simple and really readable.) With that in mind, I'm a bit apprehensive about the way Rust's syntax has been going, to be honest.

Some of the things I hated about earlier versions have been resolved (such as lower case type names now being mixed case), but there are a lot of lingering stuff that I think make the language needlessly gnarly, in a Perl kind of way. For example, "::" just isn't a very good separator, visually; it litters the code with dots. The semicolon issue still irks me. Overall it's the proliferation of punctuation (the pointer prefixes, -> and =>, the new lifetime-ownership syntax, etc.) I consider problematic. Using underscore_separated_identifiers instead of camelCaseIdentifiers certainly works in Ruby, but Ruby has so little punctuation that it doesn't overwhelm, whereas with Rust it's just one more point off readability.

Looking at parts of the standard lib makes me unsure of whether it's just written in an obscure way (for example, getopts.rs [1]), or this is the way that Rust code will be written. I guess I'm apprehensive because modules that should be "simple" don't look simple, but remind me of unhappy hours spent reading Boost's source code. I know Rust is supposed to be lower-level than Go, but I always hoped that it would balance itself so that high-level stuff would feel appropriately high-level, but you could always dip lower into the metal to get the C-like feel.

Please pardon my wet blanket, the right thing would obviously have been to join rust-dev years ago. I'm still looking forward to doing something in Rust when it's production-ready.

[1] [https://github.com/mozilla/rust/blob/incoming/src/libstd/get...](https://github.com/mozilla/rust/blob/incoming/src/libstd/getopts.rs)

</comment><comment><USER8> Just googled for some benchmarks but wasn't successful. Anyone has some benchmarks on Rust 0.6 or older versions?

<comment><USER9> It's too early to take numbers until the new task scheduler lands. Also the compiler in general is not very fast yet.

<comment><USER10> Are you talking about the speed of the compiler itself, or the speed of the code produced by the compiler? If you're talking about the speed of produced code, then I think the compiler is actually fairly decent, since they rely LLVM to optimize the code. Maybe not performance equivalent to C, but still very decent performance.

<comment><USER9> Speed of the compiler itself. I understand it's not related to the benchmark discussion as such but it's the first thing someone will notice new to rust. Compiling rust itself takes for ages.

<comment><USER11> A clang build was recently taken out of that process, though I haven't tried building since then.

<comment><AUTHOR> It took me ~1 hour to compile on my MacBook Air.

<comment><USER11> Ouch. Did you run the build with multiple jobs? (Parallel builds have been a bit messed up because of fetching the bootstrap, but you can coax it into working.)

<comment><AUTHOR> I just did ./configure && make && sudo make install.

<comment><USER11> I don't think I've actually tried that, except on my netbook (conclusion: don't try to build Rust on a netbook.) I have made a habit of typing supplying `-j 8` to make. Note: if it hasn't been fixed yet, you'll need to fetch the bootstrap compiler before that will work.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I'm curious to know the reasoning behind removing the implicit self?

Was their implementation having problems with it or was it rather a more deep- seated ideological choice?

<comment><USER13> A lot of the changes for 0.6 are removing keywords from the grammar. In this case, the `static` keyword has been removed, so there must be another way to tell if a method is static.

Another reason might be so that self can be passed in a way the programmer prefers. Usually this appears to be `&self`, but it can also be passed in other ways.

Disclaimer: I work for Mozilla on Servo, and am still getting fully up to speed on Rust.

<comment><USER14> off topic: Any update on Servo? And its license? ( I hope its not MPL and instead Rust like MIT license and the Apache License )

<comment><USER15> What apprehensions about the MPL do you have? It seems to me you can use MPL (2.0, at least) code in everything from GPL projects to proprietary software.

</comment></comment></comment></comment><comment><USER16> So, what about the bike shed? Any plans on changing the color?</comment>


Android on the HP Touchpad (Alpha Release) - <AUTHOR> http://forum.cyanogenmod.com/topic/33227-alpha-cyanogenmod-7-for-the-hp-touchpad-v710-alpha-13-oct-2011/

<comment><USER3> Installed it on my 32GB Touchpad last night; here are my observations so far (YMMV).

Pros:

\+ It's an alpha, but impressively stable. No more than a couple force quits all night. No random reboots.

\+ It feels a world faster than webOS already.

\+ Battery life isn't optimized, but wasn't horrible, either.

\+ Touchstone worked for me; even had a chime when docked.

\+ Many apps I restored to the device worked wonderfully.

\+ Did I say apps? I'll say it again: Apps.

Cons:

\+ Obviously, not all apps work perfectly.

\+ Wi-Fi was flaky on 802.11n (5Ghz). Turning on and off a few times fixed it.

\+ Market reported being offline when everything else on the unit was connecting fine. See above Wi-Fi fix.

\+ Market is filtering many apps, but here's a fix: [http://forums.precentral.net/other-tablets/303534-how- guide-...](http://forums.precentral.net/other-tablets/303534-how-guide-get- cyanogenmod-7-1-0-alpha-1-a.html#post3206800)

\+ Unexplained slowdowns from time to time. It's Alpha. It happens.

\+ Will wipe your /media/internal directory for repartitioning. Back it up first.

Overall, I'm really impressed with the speed and result of the CM7 Team's effort although I find myself missing the multitasking/switching component of webOS (but not the slowness).

<comment><USER4> webos user here. App switching, do you mean the card system ? I think its terrible in comparison to holding down the home button on any android. Hold down the home button and it shows you all the recent apps.

<comment><USER3> There's pros and cons to both systems; it's merely a preference of mine after having a mixture of both Android and webOS devices for a couple of years now.

<comment><USER5> A lot of people don't know that you can move the cards around so that you can arrange two cards to be right next to each other, if you could speed up your workflow that way. I also don't like how you have to keep the home button pressed pon android, may be it is just my phone, but I would rather have an instant response to pressing home button rather than a timed one.

</comment></comment></comment></comment><comment><USER6> Using it for a day now - it is surprisingly smooth for an Alpha. Some rough cuts here and there but nothing bad at all.

The boot time is fast. Apps launch fast. GPU seems to be doing its job - <USER2> sluggishness. Google Apps install and work fine. Wifi hasn't dropped. Browser/Flash works as well as it does on any other Android phone.

Haven't tested battery life yet but for the few times I tested disconnected from power source for a hour or two it did not seem to drain abnormally.

If you install moboot - you can conveniently choose between recovery/webOS/CM7.

BUT the webOS UI has different richness and cohesiveness to it - it goes closer to Apple experience than Android. But on the other hand it is dog slow in loading apps.

Once ICS based CM port comes out - the $99 TouchPad will be the best thing I ever bought! Till then it's a great hacking machine.

<comment><USER4> does sleep work on it ?

<comment><USER7> Yes, but not perfectly, it has the occasional sleep of death, the power management isn't all there, and wifi my not come back on without turning the wifi off and then back on.

<comment><USER8> For the wifi, turn off wifi sleep in the advanced wifi settings.

</comment></comment></comment></comment><comment><USER7> I'm running this on my TouchPad, it's a little rough around the edges but miles above WebOS in speed and usability.

Screenshot of my home screen <http://i.minus.com/ix1hOWz4bdIsi.png>

<comment><USER9> Speed, maybe, but whenever I use my iPhone or Droid Incredible for web browsing and multitasking, I miss the WebOS app switching interface something terrible. It's the best handling of multitasking on a mobile device, period.

<comment><USER10> I can deal with having a less consistent, less beautiful interface than WebOS had, but I honestly find it very difficult to go back to Android/iOS's form of multitasking. Handling tabs in browsers makes no sense, I can't switch between applications quickly enough, and worse yet if I'm trying to copy information from one application to another (and copy/paste doesn't cut it).

I remember seeing a jailbroken iOS version with WebOS-style multitasking, that I'm going to have to look into once my Pre bites the dust.

<comment><USER11> | Handling tabs in browsers makes no sense

Opening new links in a new card is by far one of the worst user experiences I have ever seen. Also a pressing another button to switch to different windows ( default android and mobile safari) is not any better.

As someone else said, maybe the shortcut isn't obvious, but holding down the home button allows you to see a recent apps and switches apps (Android) must faster than scrolling through cards.

How is copy and paste different in WebOS (haven't found a use for it yet)

<comment><USER10> This is where we differ then :) For me, it's akin to how each application on PCs implement tabs, but in a slightly different way (Chrome v. Firefox v. Nautilus). Because webOS has a consistent interface for handling multiple pages (and WebOS 2+ has card grouping), it makes for less mental effort to expect that is going to happen.

Holding down the home button is as fast as scrolling through cards in my experience. You're right, that is a comparable interface for going back and forth between applications. I like how in webOS there is an infinitely- scrollable list of tabs, whereas in Android OS/iOS it is "most recently opened" applications, the state of each application is hard to tell just from their icons, etc. webOS better mimicks the PC model.

And I was unclear about copy/paste on webOS; I meant situations where you can't just copy and paste (like consulting a map for nearby cities or roads, and you have to perform manual entry). But I'm skilled in the webOS switch, others in Android/iOS. YMMV.

</comment></comment></comment></comment></comment><comment><USER12> This was actually relatively painless! Got it installed in a matter of a few minutes, with the multi-boot option.

I downloaded a few apps and was happy to see Netflix work! Angry Birds too.

Facebook doesn't even show up from the market - not sure if other people are experiencing this or not. I assume the facebook app will not work on it, but strange that it doesn't even show up from market searches.

Would like to get swype on here somehow.

No problems with my wifi, at least not yet.

Very impressed!

EDIT: I see from a link lower down there is an update for the market apps not all showing. I'll install that later!

</comment><comment><USER13> Just a note, if you have the sync turned on and own an android phone, it'll automatically grab the apps. This can be viewed as a pro or a con depending on the apps.

There's also an issue with the usb mounting when copying over large chunks of data. It'll randomly disconnect from time to time.</comment>


Google CEO says ready to move on Yahoo deal - <AUTHOR> http://www.reuters.com/article/technologyNews/idUSN1731737520080918

<comment><USER2> While my CAC on Yahoo's system is a bit lower, I actually wouldn't mind having 1 interface to manage my two CPC campaigns as Google's system is slightly better.

I am however worried about what this means for cost, as MSN isn't even competitive in this market.

</comment><comment><USER3> Interesting timing..first the Quality Score update and now this. Yahoo's quality/bid algorithms are completely broken- I wonder if Google's QS will now apply to all Yahoo ads.</comment>