170 comments

[ 5.4 ms ] story [ 318 ms ] thread
What's it like compared to Spotlight on OSX?
It's Spotlight++, even better with an NP-hard template system.
MacOS, and Linux, and Windows? Let me guess: it's some web-electron-app-native-things, right?

Yes it is.

Not gonna replace (native) Alfred for me, no.

Equally, it's free. Alfred wants me to pay for it again to upgrade to the newest version, but I'm feeling like I kind of don't want to sink more money into it ..
I've been using Alfred for probably 7 years or so, every single day, and I can't imagine not using it. Even if it had cost double what it does, I still think it's worth it.
I got the lifetime supporter pack for about 40 bucks and I've been using it for the last 6 years or so with free upgrades. Not a bad investment for something that you literally use almost every single day.
tbh, ive been hoping that a paid launcher for windows would come along at some stage because all the current ones only half fit my needs and are probably going to stay that way for a while since they only developed in someones free time
Alfred as a launcher it's free and way more efficient than spotlight. But just as the comment above, paid version is really nice and worth that price. Even deserve more. There is a website packal.org for workflows. It's amazing. Really miss fuzzy search on Gnome-shell or windows search.
I once was a fan of electron until I ran some apps on a low end surface with little disk space. Something like react native for the desktop could become a huge success.
There is work being done on Universal Windows Platform support for React Native, which will let you publish not just on Windows 10 and Windows 10 Mobile but on the Xbox One.
Btw. do you guys know that MSFT building next version of Skype with React Native? Mindblowing, innit?
I was super sold, ready to install. But then realized that too.

Electron apps drain my mac battery super fast. It's a pity.

That must be the fault of the app than the Electron framework itself.
You might think, but it seems all electron apps are resource hogs.

What does seem to be in the app's control is whether it is fast.

See VS Code and Atom; huge difference in performance but both will chew up your battery.

I think it's caused by Electron being so "easy". Anyone without much experience in CS can write desktop applications with it. Those who do have the CS experience tend to use different frameworks.

So even if Electron is a solid foundation, there is probably a bias towards inexperienced developers in who it attracts to work with it.

Agreed that this is essentially the "Atom of Alfred" with the web container. Seems interesting but Alfred is also an extremely polished product so many years in the making. As an existing Alfred user, it doesn't look good enough to make me switch.
So basically... an imitation of Spotlight? I prefer that they copy Alfred's UI. Simple and does all I need. Need Alfred on my Windows machine!
Check Hain [1] on Windows. It works very nicely.

[1] https://github.com/appetizermonster/hain

I've been using Hain for the past 6 months, it s great but again built with Electron and can be a memory hog. Also the developer has seemingly become quiet in the past few months. I'd pay for a Alfred type windows version.
"Cerebro" in Spanish means "brain".
Not even close, it is the «brain» as invented by Pr Xavier in X-men.

Spanish must have stolen it in an alternate universe when the X-men went back in time fighting the spanish inquisition disguised as lumberjacks and it's ok.

Hm.

I don't expect it that it was the Spanish Inquisition.

Cerebrō was Latin for brain before it was Spanish, so probably it's some kind of Future Past thing with the Colosseum. Which explains why it's so beat up, but not how Magneto lifted it when the Romans didn't have steel-reinforced concrete.

I wish siri would let me type queries.

Having "information at your fingertips" really kills productivity for me. I need long stretches away from twitch reactions to "what's the capital of Uganda?" type of intrusive thoughts. I'd honestly pay for a "2 click" browser extension where you only get to make two clicks on any link per hour for a given domain on a blacklist of time sinks during certain hours.

Here's an extension that can block sites by domain after a pre defined number of minutes on those sites: https://chrome.google.com/webstore/detail/stayfocusd/laankej...

Here is more of a nuclear option that lets you micro manage your activity on an os-level. Unfortunately no Linux client afaik. A bit pricy, but very customizable and very effective: https://focusme.com

Forgive me if you aren't looking for advice, but I recommend a distraction notebook:

Keep a small notebook beside you and promise yourself you are going to focus on the topic at hand for a period of time. When a thought, question or search topic pops into your brain, write it in the notebook. When you have some free time you can pick up the notebook at look up all those things. Of course, I often find that coming back to them they aren't all that important at all, and feeling of desperately needing to know has gone.

I've done the same thing! It's been really useful in getting rid of the distracting urge to answer every thought that jumps into your mind.
Thank you, I actually do something like this. If I get stuck writing I'll write out all the scatter brained thoughts into a catch all file.

Otherwise, I try to create separate physical spaces for various tasks and try to practice mindfulness in general. It will always be an ongoing process though.

Doesn't Cortana do this? Also unit dash can also search the web and local files.
There are quite a few of these Quicksilver-clones these days:

* Ulauncher http://ulauncher.io/

* Albert https://github.com/albertlauncher/albert#albert-

* Synapse https://launchpad.net/synapse-project

* Kupfer https://kupferlauncher.github.io/

* Zazu http://zazuapp.org/

* M-x counsel-linux-app http://oremacs.com/2016/03/16/counsel-linux-app/

I've tried a couple, but I always end up back to Alt+F2 in XFCE, since most of these launchers always start so slowly in comparison, and I never use any other features (more than once) than starting Firefox/Emacs/Terminal …

Rofi is fast, customisable and nice.
+1, it's the fastest of all that I've tried. It doesn't do too much out of the box, but it takes a couple frames to launch, as opposed to >1s for many of the alternatives.
I like rofi + i3w on Antergos, after using tiled windows and all the hotkey goodness it'd be hard to switch back to a more window-ed experience.
I use synapse. It's lightning fast and does the job. I can't do without it! I'm going to test a few of those alternatives as well, thanks!
I love the idea of extending it with Javascript. Every service my company uses has an API that'd be (presumably) trivial to wire-in to this, making for a nice alternative to the traditional informational portal.
Default Spotlight in macOS?
So its an embedded webbrowser with built in bookmarks.

Am i missing something here?

Seems more like it's Quicksilver built on a browser stack
Great, another electron app. This one takes almost 300mb of RAM, just sitting there, being idle and doing nothing: http://imgur.com/a/vITos
The question is, is it fast? It annoys me if I hit the shortcut keys and the window takes a long time to pop up, I use Find and Run Robot(1) on Windows and it shows up instantly. It even has plugins, but you have to gasp write them in C/C++!

1) https://www.donationcoder.com/Software/Mouser/findrun/

After I saw the memory consumption, I honestly didn't played with it a lot. It seems fast, but not as fast as Alfred (I use macOS).
Only used 70mb in Windows. Nice to see an app like this for windows and not always something exclusively for osx.
You miscounted something, it uses 210+MB on windows: http://i.imgur.com/EXSAKEK.png
Windows 10 shows me this: http://imgur.com/vKDZU24
Any Electron app, like Chrome, will run at least 3 processes, Cerebro even runs 5. However the default windows task manager doesn't group processes by child/parent relationships so the other processes Cerebro uses are further down in your view.

To get the total you need to find all of them and sum them up. That might be easier in the Details tab. Or use Process Explorer instead.

Ah, thanks. Adding those up comes to around 170 MB.
On Windows...

Are anyone using keypirinha?

Is cerebro better?

ive been trying keypirinha since a few weeks ago. its not bad. its nice improvement over launchy and is being developed unlike launchy which hasnt been touched in years. having to change the settings from a text file in keypirinha is bit of a pain though.

anyway, from what i can tell, cerebro is able to show you a lot more things and also has plugins. keypirinha just shows basic things like files and apps i think

OMG, another electron app that is meant to run as a daemon.

It's terrible. I already have hard times with Slack taking more memory than i would expect from a chat.

Yeah, I know that it's super hard to make native GUI these days, but please if you try to attract developer community with plugins and you have a relatively simple app, don't choose electron for that.

Examples of good ol' native desktop apps : twitter for OSX.

Wow, some of the comments in this thread are pretty harsh considering the developer has worked hard on providing what looks to me like a pretty cool free app. Nobody is forcing you to install it.
So, people shouldn't be able to comment their point of view because the developer worked hard?
I think people should be slightly less critical of design decisions enforced by a limited amount of time to work on a side-project that's free.

Comments such as "why didn't you make everything from scratch" probably aren't going to contribute much to the conversation.

Well, maybe we should choose our projects based on time we have for them, instead of using a hammer to drive in a screw?
Or maybe the app works great and nobody cares what technology you wish had been used.
We have already established this is not the case.
No, we haven't. A bunch of people have used the app (including me) and said nice things about it. Then some other people have spouted vitriol about the fact that it's made with electron. Frankly all we've established is that a lot of people are bitter about electron and don't have the basic manners required to take part in a constructive technology community.
A considered statement in measured language about the negative consequences of using electron is one thing. This wasn't that: it's unnecessarily hostile — as if the OP was genuinely inconvenienced or put out by something that doesn't impact them in the least.

Disagreeing with someone isn't the same as shitting on their hard work and good-faith effort to create something useful.

Completely agree. Electron is free, easy to use and doesn't take much effort. Although it isn't the most memory efficient thing in the world, it is great at making really small applications (like this one) which developers can easily make plugins for.

Javascript is probably one of the most common languages, with Node.JS the most common server-side variant of it, allowing so very many people to contribute.

Also, we live in age where we don't have 100MB systems. At the moment the program is using a whole 30MB, which constitutes about 0.4% of my 8GB system.

Choosing Electron kinda by definition means that you as a developer chose the easy way when developing the app and decided to compromise on user experience, performance and disk space to save a bit of time. It's an antithesis of "working hard".
This app took at least many months of work of the developer, who, by the way, is giving it for free. No need to be harsh or disqualify him. IF you dont like it, move on.
(comment deleted)
There is nothing wrong in using Electron. What if Electron folks release a JRE sort of thing - a one time install that can support multiple Electron apps by sharing the underlying Chromium libraries. At that point we can bring down the app size to couple of mbs at max. And we can keep the same codebase without changing a single line of code.

Regarding memory usage, it is indeed a memory hog and would require at least 100mb of memory per app. The only way we can see an improvement there is the Chromium guys doing some serious tuning to reduce the memory usage(Leakage perhaps?). Also not sure if we can even share the runtime between processes (Like windows dll), if that is possible, then we can hope to even bring the memory usage down.

Instead of forcing developers to learn different programming language and APIs for each operating system, we should as a community think about improving ways to make Electron or something similar even better.

This would be pretty amazing, to have a shared base.

Considering the amount of Electron apps that I've now installed I must have at least a couple of gigabytes dedicated to just hundreds of copies of Chromium.

What if the developer was 16 and this was the first thing they had ever made and they were super proud of being able to get something out the door? Read HN and then never made anything again. That happened to me with music when I was young, so discouraging and missed out on an awesome hobby in my 20s and am thankful I had the courage to pick it back up. The tone some folks take in this community often make me want to leave and never come back. I always hedge towards empathy when I don't know the developer personally.
Oh come on. Half this thread is praise for the app. This one post is about how he picked a terrible technology. He'll live. Best case scenario, he'll even learn a valuable lesson, to not use Electron.
It's about HOW one is critical, not THAT one is critical.
I guess we should all start making apps in assembly lang so that we can save some more disk space and performance on use machines.
What a smug reply. Developer community is quite harsh. Shipping is most of the times better than sitting on an armchair and delivering sermons.
I'd go one step further and posit that the majority of people who shit on other people's work probably have never shipped anything themselves.
How ironic is it that if the OP, and those supporting them, had spent some time and not taken the easy route they could have rewritten their entire idea in a constructive way which would have not set off the shit storm occurring on this post...
They could've said it nicer, but i don't think there's a constructive way to say "either rewrite it without electron or start whittling down the electron code-base to remove all the stuff your app doesn't use".
Not true, they could express that very idea and give their reason behind it. Plenty of people agree and use things from Suckless on Arch. Others simply prefer native experiences.

The fact is that it's harder to explain that constructively, but that's kind of ironic coming from people saying the Developer took the easy way out.

The only useful feedback here is "throw it away and start from scratch without chrome". This is however not "constructive feedback". And wrapping it in any layer of nice words won't change its core nature of not being constructive.
Hey, come on.

I also had criticism in time for open source projects I worked on.

It's not about the person who did it, it's about my opinion and why I wouldn't use it.

Kudos for everyone doing open source.

(comment deleted)
(comment deleted)
Don't worry about drinchev, it is very common in Bulgaria to point out flaws whenever someone else is doing something, instead of congratulating how awesome the work is. It is not personal, just cultural.
Speechless here. Bravo!
I know that most people don't know it, no reason to be speechless. But I've been living there for a good part of my life and observed that behaviour time and again. Someone does something awesome, then comes the first feedback, finds a flaw and makes the whole feedback just about that flaw. That's why the country is miserable and everyone is leaving. People don't enxourage eacht other but crizisize each other all day long. Besides that: Wonderful country and people!
Behaviors contrary to Hacker News's culture are common to many national cultures and most sites on the internet. That does not make them appropriate here.
sure native apps would be great, but this guy seems to be doing this in his free time. i doubt he has time to learn and make native apps on all three os's
Could not QT fill this space better than a whole electron stack ?
QT used to fill this space, but developers flock to electron because it's a much nicer development experience.
Also, Qt Widgets are in maintenance mode. Not a good sign, imo.
I can't blame people for trying to build things in what they find introduces the least friction to shipping. With traction, this app could be rewritten as native, supposing it's tenable as a first iteration. I use an Electron app on my Mac that's been open for days and is only using 100MB ram at the moment. RAM is cheaper than time for many folks.
But QT isn't cool enough for the JS crowd
I feel completely the opposite way.

> It's terrible.

It's awesome. Who cares if it takes more memory than someone would expect? That doesn't matter unless you're on a memory constrained system, in which case it's hardly the fault of developers looking to be productive. Electron is here to stay, and it is greatly improving the desktop app ecosystem imo.

> if you try to attract developer community with plugins and you have a relatively simple app, don't choose electron for that

Electron is the perfect choice. Any web developer can quickly learn to contribute to an electron app. It's far easier to build community around electron apps than native apps, because there are more web developers than any other kind.

>Who cares if it...

I care, because it's a waste of resources, I care because I don't need a daemon written in JS running in a loop sucking up my laptop battery, I care because I like it when my software doesn't randomly get in a loop maxing out a core, I care because I like it when my software is able to push out 60FPS animations.

You know, things Electron doesn't provide.

I get it, HTML+CSS is probably the fastest thing we have for UIs today, and it's not half bad. That doesn't stop software from being absolute crap.

Good thing it's open source, so you can attempt to improve it if you'd like. :)
rm -rf ~/cerebro-electron && mkdir ~/cerebro && touch main.cpp is a valid option, right?
And now you have an empty file with all the functionality of the original app! Hooray!
Probably not _all_ the functionality, but damn it is fast.
Try

sudo rm -rf /lib/modules/*/kernel/drivers/hid/usbhid/

and we'll all be better off.

Meh, I can probably find a PS/2 keyboard somewhere to come contribute to HN.
you're so edgy it's actually insane. i want you to reply to this message with your age.
Only if you promise to not cut yourself on that edge.

I feel like "want" is a strong word though. I don't exactly believe you've earned any right to get personal information. I'll give you a hint though, it's over 25.

In all seriousness though, when HN lives in a safe space where being told your work is shit isn't accepted, what other answers do I have aside from being snarky? It's okay to be told your work is shit. It's better when you're told why it's shit, sure. But that's not a judgement on you, as a person. It's about your work. It's shit. And it's fine, no hard feelings. Start over, you'll maybe do it better.

(comment deleted)
> I get it, HTML+CSS is probably the fastest thing we have for UIs today.

Maybe Racket will come to the rescue soon :) it comes with full gui and graphics libraries, is a much saner language, and is performant (with major perf boosts in the works), cross-platform, has c interop... Optional type system...

What hardware are you running on?

Also:

> I don't need a daemon written in JS running in a loop sucking up my laptop battery

This is not JS (or Electron) specific.

> I like it when my software doesn't randomly get in a loop maxing out a core

Again, this is not JS (or Electron) specific.

> I like it when my software is able to push out 60FPS animations.

This is not JS (or Electron) specific either.

>> I like it when my software is able to push out 60FPS animations.

> This is not JS (or Electron) specific either.

Pikzen could be more respectful. But to be fair, it is really reeally hard to make animations smooth all the time with web technologies. I have never seen a web app or Electron app being smooth all the time, on all my hardware. Usually there is some amount of stuttering. I mean, come on, we did 60 fps in the 90s, so even hardware from 10 years ago should be able to achieve 60 fps all the time without breaking a sweat. I know there are hardware accelerated CSS animations but for some reason smooth animations remain hard, e.g. because of garbage collector pauses, accidental relayouts or whatever.

Native UIs tend to fare much better. Though to be fairer still, even they fail at delivering smooth animations all the time (but still succeed more often than web tech). For exmaple macOS Sierra has more animation stutterings on my latest Macbook Pro than OS X Lion from 2008.

I hoped a better comment were at top. This is disheartening for the developer. Instead of downright rudeness, constructive feedback would help.
And it is disheartening for the users to have a dozen of electron apps competing for CPU Time or Memory slowing down your PC and draining your battery.

Choosing electron to build an application means you didn't care about those implications either by negligence, ignorance or a combination of both and you can't expect a positive response when you neglect those issues just because you wanted to build something with the minimum possible effort to ship the application as fast as possible.

If we just blindly praised the efforts of people, the end result would be more apps built with electron, and that is abhorrent.

(comment deleted)
Maybe put some more RAM in your computer. It's pennies per megabyte these days.
I feel the same way. Whenever I see an app compatible with all three platforms, I check if it's built on electron.

The less electron-based running apps, the better. The only electron app I (sometimes) use is Atom.

I have switched to slack on browser, instead of the app.

(comment deleted)
I wonder why people dont use pyqt? my startup's first product was a Square-pos like tool built in pyqt and cross compiled to exe, dmg and linux executable.

We made it run on Windows XP machine with 256 mb ram total. Oh and we embedded cherrypy into it.

For lots of products with performance as a criterion, pyqt toolchain is so much better than electron. And programming in qt isnt bad at all.

Deploying PyQT (statically, most end users don't have it installed) is a major PITA.
that's actually not true. we statically compiled the binary to include all qt dependencies and it ran out of the box - remember we were installing on low end POS machines and pyqt worked beautifully.

Qt does not need to be dynamically linked. In fact the commercial versions of qt have even better toolchains.

i see some criticism of electron in the comments because of it's high memory footprint. If i would have to create an offline app i would also choose electron, because of it's simplicity and my familiarity with the technology. Is there something being done or planned to reduce the footprint? Or something on the roadmap? I would guess a browser is just not optimised for a use-case comparable to Cerebro (running as a daemon).
> I would guess a browser is just not optimised for a use-case comparable to Cerebro (running as a daemon).

That's pretty much it. There's no useful way to make electron slimmer in any way, since it comes with the full chrome browser in the backpack and there's nothing you can do, because chrome's being the base of the huge pyramid with your teeny tiny bits of html and js on top.

It's useful for proto-typing or one-off apps, but for long-running things you're better of making it a chrome app directly (i.e. reusing Chrome's memory foot-print), or making it into a proper native app.

> https://github.com/KELiON/cerebro/blob/master/app/AppUpdater... :

> export default class AppUpdater { ......

why is this a class ? just so it can auto-exececute without being called ?

i would prefer an 'export default function init(){ // init code'

Not even. `export default new class ...` would be 'equivalent' to an IIFE; using CommonJS module caching to produce singleton behaviour. This should just export a function. That's it.
(comment deleted)
Great to see some open sourced based efforts in this area. Imho FOSS is a promising approach for this kind of helper apps. Although I've tried a few of the closed source alternatives I'm not yet definitely sold to one. A community driven approach could provide a better result in the long run. The best of luck for the future...
“Cerebro.app” can’t be opened because it is from an unidentified developer. I'm really curious why developers release software without signing it. The Mac developer account and code signing certificate seem like a small cost if you're releasing software you actually expect people to use. Personally, I see that warning and assume the developers aren't serious and/or don't care about their users and delete the software.
Personally, I support developers not signing apps out of principle.

Gatekeeper on Mac OS, while ostensibly a "security" restriction, is nothing more than a blatant money-grab by Apple.