109 reputation
2
bio website il.linkedin.com/in/alexcohn
location
age
visits member for 2 years, 6 months
seen Jan 8 at 20:54

20 years' experience as an application and system programmer, architect and technical lead of software projects. Skillful in individual work, team and cross-team cooperation, meeting tight schedules and carrying out challenging development tasks.

  • C, C++, Java, C#, JavaScript.
  • Portable Software Solutions: Android, Windows, Linux, etc.
  • Image and Video Processing: algorithms, streaming, VOIP, ffmpeg.
  • Visualization in 3D: OpenGL and DirectX.
  • Internet Applications: protocols, security, encryption.
  • Wireless Connectivity: Wi-Fi, cellular.
  • Application Development: usability, design of human interfaces.
  • Localization and Globalization, including bi-directional language issues.
  • Software Craftsmanship: agile development, community support.


Jan
8
comment Use null object as argument to method
Bart only wrote that before the null is sensed, you hit an "undefined behaviour". So far, so good. When you know exactly your target and your toolchain, you can know how they behave in this situation. Specifically, for Android NDK with gcc, a non-virtual method happily arrives to this != 0 clause. And believe me, there were tons of other undefined behaviours the library depended upon.
Jan
8
comment Use null object as argument to method
@BЈовић: because the C++ libraries I was porting from Win32 to Android NDK could not support exceptions, and they were almost cross-platform, only some objects were Windows-only, and happened to be NULL in Android. Few couples of added lines let us run the huge codebase without major rewrite.
Oct
18
comment Android, OpenGL and extending GLSurfaceView?
It's fine if you have one renderer. But as I said before, we have many rendrers, and they get connected to different SurfaceViews - a mess!
Oct
9
comment Can WinRT really be used at just the boundaries?
Another didactic example of a similar task: msdn.microsoft.com/en-us/magazine/jj658972.aspx
Oct
9
comment Can WinRT really be used at just the boundaries?
We tried once to create a "silver bullet" to seamlessly glue a C library to Java on Android. Finally it could work, after spending ~×10 more time and using exotic debugging techniques (to work around the abnormal behaviour on the frontier). Definitely, it was fun.
Oct
9
comment Can WinRT really be used at just the boundaries?
Maybe your core part is not heavy enough to make it worth the hassle? When people need most to care about split between the standard C++ and the boundaries in C++/CX, or Objective C, or Java, is when a huge mature product of hundreds of thousand lines of standard C++ must be ported. In such case it is very important that they can avoid a complete rewrite, but use glueing techniques to connect the two worlds.
Sep
19
comment Should Android development be done on Windows or OSX? Is there any difference?
The huge disadvantage of Windows pops up when you have many test devices. With Mac, they connect immediately. Windows may start installing USB drivers, which is painfully slow, even if you simply switch one Galaxy Nexus with another. Worse, some devices require separate downloaded drivers. Even worse, some drivers may not peacefully coexist.