Posts

$ sort -u :

Classic Email, Web mail application refactory for visual effects (software engineering-efficiency-UX)

We will explain this refactory proposal by taking a specific provider example. Let it be Bing.com. From that page you want to access your web mail account. The current workflow is to click on "Sing in" Button (today over a nice "Red Robin" beautiful picture)-> Next transition is Outlook Auth -> Then you insert your account and pass -> finally you access your mail folders What we purpose instead it is a modification of that workflow that would start with the same click on "Sing in" -> Next for the auth page, we would keep as background the main Bing picture (in this case the Red Robin) and over the auth-pop up -> (And now here comes the refactory) Once you log in -> There could be an EXTRA TRANSITION for(a)increment UX,b)do processes in background), That transition could be something like ENTERING INTO A 3D TUNNEL (gifs, canvas?), while at the sime time all email application is being loaded for when animation ends. C...

GitHub Portfolio (Software engineering-feature proposal)

Image
Description: we want to allow Github "Admin users" to create their Portfolio (s)" from their selected git url repositories. At first there would be a "Current" portfolio composed by many gits. It would be desirable to have the possibility of easy download (a batch process would create a macro link). UML design:

Logic interpreter implementation

A C++ implementation of the Intepreter pattern , this version doesn't contain any parser, however further extension will contain "json2object.hpp" parser. Github: https://github.com/Leonarden/logic-interpreter/tree/master interpreter.hpp #ifndef INTERPRETER_HPP_INCLUDED #define INTERPRETER_HPP_INCLUDED #include #include #include #include using namespace std; class VarExp; class Context{ public: virtual ~Context(){} bool lookup(const string) const; void assign(VarExp*, bool); map _context; }; class BoolExp { public: BoolExp(){} virtual ~BoolExp() {} virtual bool evaluate(Context&) =0; virtual BoolExp* replace(const string,BoolExp&) = 0; virtual BoolExp* copy() const = 0; }; class VarExp: public BoolExp { public: VarExp(const string); virtual ~VarExp(){} virtual bool evaluate(Context &); virtual BoolExp* replace(const string, BoolExp&); virtual BoolExp* copy()const ; str...

Top common mistakes of Java developers && Common mistakes in C++ (for Java developers)

Top common mistakes for Java developers Reference to the article 1: Neglecting Existing Libraries 2: Missing the ‘break’ Keyword in a Switch-Case Block 3: Forgetting to Free Resources 4: Memory Leaks 5: Excessive Garbage Allocation 6: Using Null References without Need 7: Ignoring Exceptions 8: Concurrent Modification Exception 9: Breaking Contracts 10: Using Raw Type Instead of a Parameterized One Top common mistakes for Java developers when programming C++ Reference to the article 1: Type conversion rules 2: Memory management 3: Deterministic destruction 4: Exception handling

3D with POV-Ray, isosurfaces example

Image
POV-RAY , has been used to build an isosurface, first intend was to represent a "tainted teardrop over the floor" (a lot of work still to do). file1.pov #version 3.7; global_settings { assumed_gamma 2.2 max_trace_level 7 } #include "colors.inc" #include "textures.inc" #include "shapes.inc" #include "functions.inc" camera { location right x*image_width/image_height angle 25 look_at } light_source { colour White } light_source { colour White } light_source { colour White } background { color SkyBlue } plane { y, -2 pigment { colour rgb scale 8 } finish { ambient 0.2 diffuse 0.8 } } //f= 1 - 4*pow(x,2) - 4*pow(y,2) - 2*z + 2*pow(z,3) - pow(z,4) = 0, //olff=((x*1.618)+x)/(exp(1.618*x))-((y*1.618)+y)/exp(1.618*y) //working f=1 - 4*pow(x,2) - 4*pow(y,2) - 2*z //mine: f = 1 - 4 * 2 * exp(x) - 4*2*exp(y) - 2*z isosurface { function { 1 - 4 * 2 * exp(x) - 4*2*exp...

Algorithms: N-Queens problem Backtracking technique, (OO/C++)

N-Queens problem consist into place N Queens on a chess board so that any of the queens is able to kill anyother. (Move: Horizontal, Diagonal). To find the solution we use Backtracking technique , code is also documented. nqueens.h #ifndef NQUEENS_H_INCLUDED #define NQUEENS_H_INCLUDED #include //Abstract class using namespace std; class NBacktracking { public: NBacktracking( int n, int defValue){ N = n; defVal = defValue; //board = this->generateBoard(); ld = new int[n*n]; rd = new int[n*n]; cl = new int[n*n]; } virtual ~NBacktracking(){} virtual bool solve(){} virtual bool solveUtil(int **board,int level){} int** generateBoard(){ int **b = new int*[N]; for(int i = 0; i //NQueens problem class NQueens : public NBacktracking { public: NQueens(int n,int defValue):NBacktracking(n,defValue){} virtual ~NQueens() {} virtual bool solve(); virtual bool solveUtil(int **board, int col); virtual void printSolution...

Algorithms: Fibonacci numbers, recursive and Dynamic Programing solution (C/C++)

For the Fibonnacci serie that is described like follows: Fibo(0) = 0; Fibo(1)= 1; (base cases) .... Fibo(n) = Fibo(n-1)+Fibo(n-2) Thus: Fibo(2) = 1 + 0 = 1; Fibo(3) = 1 + 1 = 2;... This code computes N term of a Fibonacci serie, using 2 algorithmic techniques: Recursive and Rec-DProgramming, it also measures performance time. fibonacci.h #ifndef FIBONACCI-NUMBER_H_INCLUDED #define FIBONACCI-NUMBER_H_INCLUDED #include #include #include using namespace std; //Fibonnacci recursive int fiboRec(int n){ if(n==0) return 0; if(n (end - start).count() =0 && second>=0) return dp[n] = first + second; else return -6; } int launcherFiboDP(int k) { //dp = (int *) calloc( k+1, sizeof(*dp)); memset(dp, -6, sizeof(dp)); int n = k; ////// auto start = chrono::steady_clock::now(); int r = fiboDP(n); auto end = chrono::steady_clock::now(); ////// cout (end - start).count() > n; cout main.h #include "fibonacci.h...