Here is a nice post from JAW Speak to learn how forcing…sorry… improving…
your developers enthusiasm for unit testing !
Improving developers enthusiasm for unit tests, using bubble charts.
Here is a nice post from JAW Speak to learn how forcing…sorry… improving…
your developers enthusiasm for unit testing !
Improving developers enthusiasm for unit tests, using bubble charts.
Yesterday, without any change from my side, I wasn’t able to upload images on all my WordPress installations…
I got the following error : Failed to write file on disk error !
The first test I did was uploading a file by ftp… no error !
So, I tried to modify and did some tests on folder rights by changing chmod and even modify the htaccess file…
But I wasn’t able to fix the problem…
Finally, after have lost a lot of time, I got on this post the solution :
This issue is purely 100% server side ! The problem occurs because WordPress is not able to access the server temporary folder because it is full and so, can’t upload images through it…
So, I contacted my hosting provider yesterday evening, and my problem has been fixed this morning…
Every year, the PMI Switzerland Chapter and the SMP organize the “Congrès du management de projets” at Lausanne. As usual, it was great !
I just would like to share with you one of the workshop I attend to :
“PMBok vs Scrum : Is there an overlap”
presented by Silvana Wasitova from Itecor.
It was very interesting. More particulary, we spoke about how many features are actually used by the end users. This subject is aligned with one of my research priority : software lean management in a agile context.
How to make the link between Scrum planning and traditional project plan ?
Very often in a company, some stakeholders (bosses…) ask for a classical project plan with resource mapping, etc…
If your team develops with the Scrum method, it’s not very easy to produce the project plan artefact.
Different levels of Scrum piece of work
The Scrum framework describes different levels of workpieces. A tips to build the project plan is playing with these levels.
Keep the flexibily
The project plan for your stakeholder should only show the Epic and Theme levels without explicit resource names. it’s essential that you “keep secret” the user stories and of course the tasks (This level should be only known by the team itself). If you don’t keep details from stakeholders, you will lose one of the most advantages of Scrum : the response to changes !
Defining the Scrum project plan
As explaning above, the idea is showing only the Epic and Theme levels.
Below, the process illustration shows the steps from high level backlog to the scrum project plan. On the schema on the right, a team is an Epic. I will speake about this in another posts… ![]()
The Goal is showing a example how to implement a kind of event mechanism between c++ (no managed) and c# by callback.
The first point is defining the callback mecanism in the c++ part :
//1) Constant for setting de calling convention #define CALLING_CONVENTION __stdcall
The typedef keyword can be used to define an alias for a function. In this use case, you must specify the return type of the function and its argument types. Moreover, you have to use a function pointer.
//2) define the callback typedef void (CALLING_CONVENTION* Info)(double _InfoA);
//3) Declare a callback as a class member Info m_pfSendInfo; // declare the callback
//4) Defining the function register using on the c# side to register //or unregister the function #define EXPORT = __declspec(dllexport) ... EXPORT void CALLING_CONVENTION cmodule_InfoCBRegister(Info _Callback);
//In the cmodule_InfoCBRegister function definition :
...
m_pfSendInfo = _Callback;
...
//5) Using the callback in the c++ code double NumberInfo = 0.0; // parameter to send ....
if (m_SendInfo != NULL) // using the callback { m_pfSendInfo(NumberInfo); }
Second point : c# code
//1) Declare the delegate (event emulation) public delegate void CModuleInfo(double EventInfo);
//2) wrapping between c++ register and c# register // dll import settings [DllImport("cmodule.dll", EntryPoint = "InfoCBRegister", CallingConvention = CallingConvention.StdCall)] // dll function reference private static extern void cmodule_InfoCBRegister(CModuleInfo _Callback); // c# method mapping public void InfoCBRegister(Info _Callback) { cmodule_InfoCBRegister(_Callback); }
//3) Register on the "c++ event" from c# CModuleInfo m_CModuleInfo = new CModuleInfo(CModuleInfoProcess); ... InfoCBRegister(m_CModuleInfo); ...
//4) event process private void CModuleInfoProcess(double Info) { // process of double info when c++ "event" occurs ! }
I just did a management course entitled “motivating or manipulation ?”
If I have to resume it in one sentence, it would be :
It’s easier to dismantle an atom than a prejudice (Albert Einstein)
Our prejudices distort others speaking, then cause a lot of communication problems.
From the foundations of my software programming skills, there is c++. Even if I used to develop with Java and now mainly use c# in a professional way and Objective-C and c++/Qt as hobbies.
A few days ago, I was in totally confusion about a type of use of the new keyword in c#.
New in c# has two different kinds of use : operator and modifier.
operator use
In C++, the new keyword instantiates objects on the heap. There are some differences in C# : With reference types, a new statement instantiates objects on the heap, but with value types such as structs or simple types, objects are created on the stack and a constructor is called.
if you don’t use new keyword with value type, the object is created on the stack, too. But be careful! New initializes objects. If you don’t use new, you must initialize all the values in the struct or simple type by hand before you use it or it won’t compile. (ref. microsoft).
Another difference between c++ and c# is : the new operator can’t be overloaded in c#.
So, in the operator use, there are some differences between c++ and c#, but all in all it’s the same.
modifier use
My confusion is about using new in c# in a modifier way… New keyword is used to explicitly hide an inherited member…And this use case is very confusing if you come from the c++…and even if not ! See below :
In order to “hide” an inherited member of a class, you can declare it in the derived class using the same name, and “modify” it with the new modifier…
class ABase
{
public void DoJob() {}
}
class A: ABase
{
new public void DoJob() {}
}
So, a call to A.DoJob(); will call the A method in all use cases…But honestly, what is the utility of this ?!
One more thing, the code will exactly work the same way without the new. The only difference is a warning like this :
“The keyword new is required on ‘A.DoJob’ because it hides inherited method ‘ABase.DoJob’.”
In my opinion, using new keyword in a modifier way is to be avoided absolutly ! Use “polymorphic compliant” code and “multi languages comprehensible” code using virtual and override keywords instead !
class ABase
{
public virtual void DoJob() {}
}
class A: ABase
{
public override void DoJob() {}
}
A lot of programmers will tell you…Thanks ! Starting by me…
I just bought a mac pro ( I know I’m a lucky man
). I make the decision to build a brand new system install. I mean without using Migration Assistant to transfer datas from my old machine.
So, moving Mail datas from an Apple machine to another one, as follows :
With Scrum methodology, at the beginning of the sprint cycle (every 7–30 days), a “Sprint Planning Meeting” is held. Here are the general steps :
I hold the role of Product Owner in my current company. We tried to apply precisely this pattern advised by the methodology. But…
I don’t know if you tried having a meeting of 8 hours…For me, and from experience, it’s not possible to spend so much time in meeting and be productive !
Moreover, It ‘s really difficult to determine in 1 day all the work for a 10 developers team taking into account of interdependences between items and others influences like undone items during the previous sprint…
So, we introduce some measures to limit the time of the sprint planning meeting.
The effects are quit good. Our sprint planning meetings at the end of a sprint aren’t chores any more, but productive meetings !
Converting a string to an enum item wasn’t very obvious (actually for me
)… But it’s quite easy after found the right method…Let’s see below :
enum FilmMakingSteps { Development, PreProduction, Production, PostProduction, SalesAndDistribution, } ; FilmMakingSteps filmMakingStep = (FilmMakingSteps) Enum.Parse(typeof(FilmMakingSteps), "Production"); // filmMakingStep is the Production item ! // Problem, picking an invalid string throws an ArgumentException. // So, call first Enum.IsDefined(), as follows: string noneFilmMakingStep = "Photography"; if (Enum.IsDefined(typeof(FilmMakingSteps), noneFilmMakingStep)) filmMakingSetp = (FilmMakingSteps) Enum.Parse(typeof(FilmMakingSteps), noneFilmMakingStep, false);// false = case-sensitive else MessageBox.Show("Not a valid filmmaking step !"); // is called !