HN user

soinus

52 karma
Posts4
Comments25
View on HN

I think the most impactful thing I've built for now is an open source project used to auto complete C++ code in sublime text: EasyClangComplete. It does not take over the world, but I've been using it for years along with tens of thousands of people and that's good enough for me.

But there is! Use local variables and value semantics. Use references to borrow stuff. Never touch new or delete. Use smart pointers when need an owning pointer (rare). Anything beyond that: ask next in seniority to supervise. That should be enough to live a happy C++ life for a junior.

As a personal anecdote, all of my jobs were actually very interesting with lots of interesting design problems spanning from low level systems to very high level design decisions. Granted I worked in automotive and later in AR and have been lucky enough to be at the start of some projects, but there definitely are interesting projects for C++ out there.

Would not say it's true at least for robotics related fields. I personally taught C++ some years ago and the new guys have taken over since, adopting and improving on my course. There are many specializations where C++ is still a must.

While I completely agree with you that asking for forgiveness in these situations is probably a better strategy, I definitely know the feeling that OP had.

My take on why it's hard is that I want to be a team player and I generally want to do good for the company and especially the team. If I go and do something else, which I believe in, but which is not what we agreed upon with my team, it feels awkward and I either have to do it in my spare time (this strategy wears thin with time) it "sabotage" something else that I'm doing.

So I definitely see a structural issue at hand here. If anybody has a suggestion of how these situations could be addressed - I'm all ears. How can we tackle situations where the time to write code is much much less than the amount of time to discuss if we have to write this code? How to skip to writing the code quicker?

If anything, I've seen union doing exactly the opposite, at least in Germany for senior level jobs. Coming to work for a big company the only chance of getting a higher salary is to be above the union negotiated margin. The companies generally don't really want you to get there and it can be really tough to negotiate this. You are really well protected and basically unfirable in union but there is a top margin to your salary. If outside the margin of union salaries you're on your own with your own responsibilities. I really did not like working on a company that had a union as I've seen lots of people with zero motivation and nothing that a company could do about it.

I run a Trello board along the lines of Getting Things Done, i.e., everything I have to do goes into this board. It starts with "incoming" list, which can also be filled from email. Every morning I look at what is there in the "incoming" list and these tasks move on to "today", "this week" or "later" lists. Also, tasks from those lists go back into "today" if needed. When I'm done with a task it moves to a "Done" list, which gets emptied automatically every night. Additionally, I have a "waiting on" list for things out of my control. That is about it. This system is free, I can success it from anywhere, and it is motivating to drag stuff over.

Oh my! This is amazing! It is exactly what I need to fulfill the picture!

To those, who can't or don't want to watch the video: you can configure iPad to lock you in a single app and unlock with either biometric or pin entry. This is available in the accessibility settings.

I just have to chime in on this. While I don't use the mouse with an iPad on a daily basis, I have found a new use for it yesterday.

Once every <insert-some-time-frame> I start missing games and decide to play something. I have a dedicated relatively powerful PC for that. What I have recently found out is that I can play XCOM2 on my PC through my iPad with Steam link. The experience was good enough out of the box but the way the cursor was controlled through an iPad screen felt a bit out of place.

Yesterday, I suddenly realized that I can use a Bluetooth mouse with my iPad and holy crap, the experience is like playing on the PC but I am not attached to the desk! There is only one minor issue of not being able to move the mouse to the bottom of the screen without triggering the applications bar, but this was not too annoying.

Not sure how important this is to anyone, but I was amazed that I could do this.

I usually try to stay away, but I'll bite this time. I have no affiliation with Google, don't own their stock nor ever have, but these kind of responses bug me.

Working in data science I keep thinking about how I would solve a particular problem. Regarding real-time traffic: how would you solve something like this? Clearly one has to have a lot of anonymized data one can trust. Now the question is how to get these data. Google is building it's business on providing a useful service, like gmaps, for free and on using the data from the users of this service in aggregate to sell useful information to businesses that require these data for whatever they are working on, like the company in the article. Google is very transparent about how they use your data when you use their service and they seem to try to do their best to anonymize these data, e.g. you hardly ever get the access to even anonymous data outside of Google, but rather to the information computed from these data. So I see no objective reason for being so angry. What am I missing here? In the end, if you ever want a service like "ETA at destination" someone will need to acquire the data anyway, right?

The quarantine did not change much for me. I am still mostly working on EasyClangCompelete [1] - an easy to use (at least that's the goal) auto-compeltion of c++ code in Sublime Text. The goal is to make it work out of the box for as many systems as possible. I've been working on it for a couple of years now.

Otherwise, I did find out that now I have the time to learn some things I wanted to for a long time (like OpenGL) or play guitar again, so that takes the remaining time.

[1] https://github.com/niosus/EasyClangComplete

Same here. After working in academia with no agile process (worked well), in a startup or around 20 engineers using OKRs (worked great) and a big company following SCRUM (nightmarish) I could not agree more with you.

I believe weekly OKRs are the best of two worlds: they are restrictive enough to feel the peer pressure for ones committed goal and descriptive enough for any manager to get a grip on the current situation, while at the same time relaxed enough for engineers to not feel like they are trapped in a cage. One week is plenty of time to either finish some work that just needs to be done or write a small prototype. In fact I liked it so much, that I brought the idea of OKRs back to my research lab and everybody loves it!

Scrum is the worst of this for me. We've rotated through a couple of daily formats and it always feels micromanaged and pointless. In addition to that it takes away the personal feeling of achievement. My best work in this framework has been done when I ignored the framework as the whole...

Well, I would say the"critics" comment was deaded not just because it was criticising. It did so in a sarcastic manner providing no reason whatsoever. At least that's my take on it.

I automate my todos. In the best tradition of getting things done, I have a single list for all my todos. It is in Trello and it uses Butler for automation. I have Inbox, Today, This week, Done and Later lists. The Done one gets emptied every day at 2am. Wherever I move a task to Today I get assigned to it and the due date is set to the evening of today. It's not much, but keeps me kinda organized.

There is a bunch of plugins that do essentially the same, but are all subtly different. the one you reference uses python bindings, but only works for Linux.

I will do a brief list of all that I know of: https://github.com/quarnster/SublimeClang - discontinued

This one is pretty close to what I want: https://github.com/lvzixun/Clang-Complete It uses libclang and should work on all systems. It didn't work properly for me under Linux, but feel free to use it if it does.

There is also a plugin https://github.com/griebd/clangHelper which shares the purpose with what I have written, but was never updated after the initial commit, which is a pity. I probably wouldn't have written mine if it would be alive.

Then there are https://github.com/LuckyGeck/YcmdCompletion, https://github.com/glymehrvrd/CppYCM and https://github.com/ivankoster/SublimeYouCompleteMe that use ycmd server to complete code. Ycmd is well-known to those who are vim users under the name YouCompleteMe. Unfortunately all these plugins are not fully in line with Ycmd server developments, e.g. the HMAC auth often mismatch and sometimes there is even no setting for that. These all are really great! And I do like the server-client architecture of this, but I could not make any of these work reliably for me. Believe me, I have tried. Also, again, it is harder for the user to separately setup a server and then register a client to it with multiple settings. Also there is a need for a .ycm_extra_conf.py file that has non-trivial syntax (as a python file)

And then there is https://github.com/pl-ca/ClangAutoComplete which is a really nice plugin and I started off my forking it. It uses only clang binary and is written in a simple, easy to grasp way, so it was perfect to hack around. However, I wanted to have a more modular structure and to make is unit tested and to use libclang when possible, so we have diverged.

Correct me if I did any wrong statement please and point me to the ones I may have forgotten.

Yep, but I have unfortunately not managed to make it work for me. Also, I wanted to achieve really low-effort setup. I believe that my plugin, while maybe has less features is easier to setup. The user doesn't need to compile anything and generally can avoid opening a command line completely.

I would say these two plugins serve different purposes. rtags seems to be a machine that requires some setup and knowing what you want, but can do a whole lot of different things, while mine is simpler both in setup and architecture, but is of course less functional.

It is hard for me to compare. Last time I opened Visual Studio was like 5 years ago. This plugin would actually not try to compete with VS, as this thing is a monster and this plugin is a hobby project. :)

Originally I wanted to have some lightweight autocompletion for Linux and have added Windows and OSX support because people were trying to use it.

What you say about using VS to manage all compilation and project dependencies sounds really nice and logical, but unfortunately I have no knowledge whatsoever about how VS does this, so I'm not sure I can do this alone. However, I would love to discuss it should anyone have any nice ideas.

Hello HN, I couldn't find any plugin for Sublime Text that would autocomplete C++ code and would be easy to setup, so I have written one. It is not fully polished, but works for me and a bunch of people, so I thought it was a good idea to expose it here.

The reason I post it here is two-fold.

First, I wrote it to make it useful, so I wanted to test it in real world,

Second, I tried to use libclang for autocompletion, but it works only for Linux currently. OSX and Windows for now resort to parsing the output from `clang -code-complete-at` command envoked in a subprocess. I would really love to make the plugin use libclang everywhere. So I would really like to get some help from people who are more familiar with OSX or Windows than I am and to generally spawn discussions on design desicions taken by me in this plugin.

Hope you guys like it. I am open to discussions and to your suggestions!

Damn, feeling completely dumb. I have installed the tool, and am trying it on one of my projects. After I do some local commits `git-appraise request` returns `There are no commits included in the review request`. Is there any tutorial or more documentation available somewhere? Or do I need to dig into its code to find the issue?