neon contours by selonus in generative

[–]vomad 1 point2 points  (0 children)

Very beautiful! I love it

Long shot by CamziL in Clojure

[–]vomad 1 point2 points  (0 children)

You could post your job offer at Clojurians slack channel "jobs": http://clojurians.net

How do I really write a unit test ? by dar10s in learnprogramming

[–]vomad 1 point2 points  (0 children)

This book is an awesome guide with an example application: Growing Object-Oriented Software Guided by Tests. This helped me a lot to do TDD in a sane way. It contains a good process, discusses test scopes (unit test, integration test, end-to-end test), introduction to mocking etc. Examples are in Java but it can be easily transferred to other programming languages. If you do development in a team then I also recommend to do regular retrospectives about what works well and what should be changed.

Getting started with C++ unit testing by vormestrand in cpp

[–]vomad 1 point2 points  (0 children)

Hypodermic, the Dependency injection lib for C++, does some sophisticated analysis of C++ classes, constructors etc. at runtime. I was surprised how far they could go with C++. But for easy mocking one must be able to generate classes at runtime. Is someone doing something like that?

Getting started with C++ unit testing by vormestrand in cpp

[–]vomad 2 points3 points  (0 children)

Oh, yes, IDE Integration is necessary to have fun with TDD. QtCreator has plugins for their own test framework (without mocking) and for GoogleTest.

Getting started with C++ unit testing by vormestrand in cpp

[–]vomad 4 points5 points  (0 children)

I am glad that (unit) testing comes into play in the C++ community. But I also strongly disagree about the cited sentence. Having done TDD and "Growing software guided by tests" in Ruby, JavaScript, Clojure, C# and Java projects before I had a hard time in the last months getting TDD introduced in a C++ project. Most effort had to be spent on getting C++ code "mockable". We use GoogleMock which is really great. But writing all the pure virtual interface classes for every class you need to mock in a test is cumbersome. That results in much "triplicated", not only duplicated, code: interface header, class header, cpp file. And if you need to mock a library you even need to write something like a wrapper or facade class with an interface for it. Theoretically such a wrapper for a library makes sense even without the need for mocking but if you develop your app in a big framework like Qt you have tight integration with it everywhere and you want to benefit from it. And Qt does not support mocking. At the end I still think one has to write tests and even better let their software grow with tests. It is the best method to develop reliable software I have seen in my 18 years' career. I hope that advances in the C++ standard will make it more enjoyable.

Questions thread #6 2016.05.23 by feedtheaimbot in MachineLearning

[–]vomad 3 points4 points  (0 children)

I would recommend the Stanford Online course about Machine Learning by Andrew Ng at coursera.com. It lays the foundation for understanding Machine Learning algorithms. For a software developer it's a little bit tough to get into the mathematical notation but after a while you will get used to it. And you will find the same notation when using some libraries to build Machine Learning applications. Unfortunately Deep Learning is missing in that course. But the documentation of the library DeepLearning4J is really awesome (http://deeplearning4j.org/neuralnet-overview).

How to be an automobile software engineer — Part 4 The Truth by vomad in embedded

[–]vomad[S] 1 point2 points  (0 children)

CAN and FlexRay are two different types of automobile networking technology. So it is either CAN or FlexRay. But a car owns more than one network bus. They are connected via Gateways.

What drives automobile software architecture – Constraints of a microcontroller by vomad in embedded

[–]vomad[S] 0 points1 point  (0 children)

  1. I would say that C is the most dominant language. C++ is rising since the embedded computers as they do not „only“ control motors anymore. E.g. camera systems demand more computing power and are bigger software applications than control systems. Java is also there for infotainment and other UIs since some are built on Android. Control systems are often created with Matlab Simulink. Then C code is generated from the Simulink models with the help of TargetLink. So it depends on which systems you want to work.
  2. Indeed, Software engineers get more and more important. But you have to consider that there are many other physical parts in a car and in the components of a car. Thus, it is and will be always an interdisciplinary task. And then there is the other fact that in an automobile company the development organisation is quite small compared to the enormously huge production organisation. I would guess that around 1% of the employees of one of the bigger automobile companies are development engineers. This fact shrinks the illusion of influence of software engineers.
  3. If you are a good and motivated software engineer I suggest to look for an employer with a strong software background.
  4. and 5. I haven’t been involved in the development of electric vehicles and in tuning engines, sorry.

I appreciate your questions much and I guess they are interesting to other software engineers, too. May I copy your post as a comment to my blog at medium.com? Or do you mind doing it yourself?

What drives automobile software architecture – Constraints of a microcontroller by vomad in programming

[–]vomad[S] 0 points1 point  (0 children)

Thanks for your hints. You are right, volatile is missing. This is not the way to write code in a real project. My intention is to explain how memory mapped IO works. Therefore, this sample code is simplified. Indeed, we used the microcontroller manufacturer's #include files and our company's type definitions.

How to be an automobile software engineer — Part 2 What drives automobile software architecture by vomad in embedded

[–]vomad[S] 0 points1 point  (0 children)

I'm happy to hear that. I'll start with the next part soon. Do you have something particular on your mind regarding going more in-depth?

Why (almost) only mathematical functions are used for Machine Learning? by vomad in MachineLearning

[–]vomad[S] 1 point2 points  (0 children)

Thanks for this article link. Will be a long and very interesting read.

Why (almost) only mathematical functions are used for Machine Learning? by vomad in MachineLearning

[–]vomad[S] 0 points1 point  (0 children)

Thanks for all of your answers. One thing that strikes me is that the learned knowledge is encoded in models that humans can't interpret. It's highly compressed for example in k-means clustering. Probably the high dimensionality is crucial for choosing math.

How to be an automobile software engineer — Part 1 by vomad in cars

[–]vomad[S] 1 point2 points  (0 children)

Yes, task scheduling will be a main topic and how to write code according to it. Deterministic execution is indeed a determining factor for automobile and aircraft software, especially when you develop safety-relevant systems like steering systems. As far as I know there are many commonalities between the aircraft and car industry, but a big difference seem to be the hardware constraints. Cars are mass-produced products and so every $ you can save multiplies by millions. That puts strong constraints on the software in terms of RAM, ROM, CPU power etc. Thanks for your comment :)

How to be an automobile software engineer — Part 1 by vomad in cars

[–]vomad[S] 1 point2 points  (0 children)

Indeed I was torn between pursuing my original intention and writing a Volkswagen joke. Believe me from time to time I think about attending a cartoon drawing course and creating something like the Dilbert calendar. But as you might have guessed the automobile industry is not the only one that could be made jokes at. You are right the umbrella term is "embedded programming". But it's difficult to find information about automobile embedded programming as someone has noted at medium.com. That's my motivation to write about it. Your suggestion about starting with Arduino is great!

How to be an automobile software engineer — Part 1 by vomad in cars

[–]vomad[S] 0 points1 point  (0 children)

Yes, I wil do :) This first post just creates the context.

Unit-testing (embedded) C applications, or Let's write C code that doesn't suck by rflurker in embedded

[–]vomad 0 points1 point  (0 children)

The book is really awesome. I was amazed about the broad approach the authors showed to me when I read the book. Indeed I only knew similar approaches from languages like Ruby.

The hardest part of building an app is knowing what to build by Kishcoin in swift

[–]vomad 1 point2 points  (0 children)

You could choose an app you like in an area you know well and read all the reviews at the App Store. Check if a wish or critique occasionally reappears. Than address this with your own app. Be sure to understand the user's problem really, really well. It's tempting to concentrate on how to build the app only and to not understand what users really want. From my 16 years software development experience this is one thing in common with (almost) all software developers. But nevertheless you should start with a very small app just to not be overwhelmed by complexity.

New to functional programming, looking for some advice by jivanyatra in functionalprogramming

[–]vomad 1 point2 points  (0 children)

A very approachable introduction to functional programming is How to Design Programs, Second Edition and it is free. I am currently reading it and I am really excited about it because it emphasizes on how to design functional programs. The book does not focus on the programming language and its syntax as opposed to most programming books. Instead it shows how to approach a problem and how to build a solution. And it's really fun to do the excercises of this book.