Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,167,304 members, 7,867,802 topics. Date: Saturday, 22 June 2024 at 01:42 AM

Ghenghis's Posts

Nairaland Forum / Ghenghis's Profile / Ghenghis's Posts

(1) (2) (3) (4) (5) (6) (7) (8) (of 8 pages)

Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 4:05am On Mar 06, 2012
#1Who said anything about time critical software and agile ?
#2 ?
#3 the point was to take a snippet of code and analyse the design considerations ,
#4 If you say so ?
#5 Regarding the book, I've read several books on software design patterns and head first is actually one of the best I've read in that category. Look beyond the learning aids: they picked a software problem and showed how you refactor to patterns.


It seems the whole thread is jumbled up. I rest my case.
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 8:03pm On Mar 05, 2012
Hello @csharpjava

I happen to have a hard copy  of Head first Design patterns (Well read also ,   wink).

Yes you implement patterns, my point is that its not class diagrams or UML.
Its also not code.

From you reference
csharpjava:

Here is an Abstract of a paper in the IEEE

Abstract
For more than a decade, patterns have influenced how software architects and developers create computing systems. Design-focused patterns provide a vocabulary for expressing architectural visions and clear, concise representative designs and detailed implementations. Presenting software pieces in terms of their constituent patterns also lets developers communicate more effectively, with greater conciseness and less ambiguity. Software patterns influence how developers design and implement computing systems. This paper examine the software patterns' past, present, and future trends, which can help developers improve their projects.
Source: Software, IEEE

Your reference says it all

It provides a [size=14pt]vocabulary [/size] for [size=14pt]expressing architectural visions[/size] and clear, concise  [size=14pt]representative[/size] designs and detailed implementations. [size=14pt]Presenting[/size] software pieces in terms of their constituent patterns also lets developers [size=14pt]communicate[/size] more effectively, with greater conciseness and less ambiguity. Software patterns[size=14pt] influence[/size] how developers design and implement computing systems.
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 6:11pm On Mar 05, 2012
csharpjava:

I don't agree with you also.

I wanted to look for a supporting references and voila wiki :

http://en.wikipedia.org/wiki/Software_design_pattern

A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. So patterns are formalized best practices that you must implement yourself in your application.[1] Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.

http://www.vogella.de/articles/DesignPatterns/article.html
A design pattern is not framework and is not directly deployed via code.

And Finally :
http://www.cincomsmalltalk.com/userblogs/ralph/blogView?showComments=true&entry=3338009673

He says that " Everyone already knows that Design Patterns means a library of C++ code templates". Yes, some people think that. They are wrong. A design patttern is not a library of code templates in any language. If you use Design Patterns by copying code from the book then you are stupid and missing the point. The point of the book is to teach you to think. If you learn how to think about code then you will program better.
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 2:38pm On Mar 05, 2012
csharpjava:


Design Parterns are a way to avoid developing software from scratch, developing application from scratch can be very expensive. Design patterns enable large-scale reuse of software architectures and also help to document systems. It is similar to a recipe, you will find it quicker to make a special meal from a recipe than for you to come up with a new way of making that meal from scratch. When you design your class diagrams you are making use of design parterns as you do not create all the classes from scratch, that is why you use inheritance and interfaces. Design parterns are not archaic, they are now being used in: Project management, Organisation structures, Requirements analysis, System design, General modelling approaches and Programming.
If your client can afford it and you have all the skills and resources then you can follow the software tradition that the best way to serve the user/customer is by building each new system from scratch.

I don't really agree with all of this : Design patterns does not provide an alternative for development from scratch. Its not also not strictly an API or code base, though some vendors implement the pattern in there API.
using class diagrams not not using design patterns.

Software design Patterns are a common, identifiable set of recommended solutions to a set of commonly recurring software development challenges.

Its the common ones that are implemented in code like Singleton, Observer, Proxy, Memento, Command (used by a lot of UI frameworks like struts or jsf), .

Others you implement yourself : e.g. Factory, Strategy, Facade etc.
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 6:57am On Mar 05, 2012
delomos:

^^ and if I may ask, is there any companies writing space shuttle or life support code in Nigeria? Please stay in context.
Yeah, my point is an organization needs process maturity amongst other things to be able consistently perform. Many customers (Nigeria included) look for organizations with huge reputations to deliver their critical systems(It doesn't have to be life critical, say time critical).

delomos:

^^ I honestly don't get your point here, yes, no software can be bug-proof, you make compromises. But how do you know the one with the "smallest negative impact" when you're developing software for "enterprise" (what does that word even mean in this context).
Even the most innocuous looking code is susceptible to abuse, so a developer has the responsibility to weight the odds and decide. For instance, when would you use an Array instead of a Map ? You have to weight the consequences of using either in your current context. But you also consider contexts outside the current.
Also Regarding enterprise: post a very short snippet of code(hope its java) here and we'll analyze that.(Got to get to work now smiley).

delomos:

I see you're a fan of terminologies (perhaps archaic it seems), see this link (quite an interesting review of the book 'Design Patterns: Elements of Reusable Object-Oriented Software', the punch lines are in the comments): http://www.amazon.com/review/R1YW4R3VD4PBEJ/ref=cm_cr_dp_perm?ie=UTF8&ASIN=0201633612&nodeID=283155&tag=&linkCode=
Saw the Amazon dis of GOF patterns, the book is not the most explanatory but it brought patterns into the mainstream. Its easy for the poster to say that now, go back to 1994 when the book was written, it wasn't that much common place. Also patterns are not new code, its consistency in handling common problems. So its not meant to be innovative per se , That's my response to the Amazon poster, but I get your point about Vienna , grin
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 6:32pm On Mar 04, 2012
delomos:

^^ummm,  finally explains why Windows 95, ME, and Vista sucks. To be fair though, Microsoft definitely put the business of software on the map ( to which some computing purist are still rather displeased) and mostly due to great marketing, super great marketing. (I'd recommend you watch the movie, 'Revolution OS', super great movie:
Windows 95 suck ? Hmm that was the OS that defined what a desktop OS should be ,
ME and VISTA were bloatware (ME especially), Vista was just Window 7 beta.
If you want to hear about software development, research windows 3.1 etc. Back then MS was making computers do things that chip makers hadn't dreamt of. MS were hacker back then, they really pushed the limits of x86.
I'm not really an MS fan, but I'm sure there's no OS with as much appeal and backward compatibility as Windows (Note i'm not saying its the best, but it has the highest number of programs working on the planet).

delomos:

If i propose to my new clients that: "I solved this, this and that problem for Client X, where is our portfolio". Is that a reasonable proposition than, we are blah, blah, blah certified ?
God forbid, but If a loved one were on a life support system or lets say space shuttle; who would you rather have develop the code the one with more processes than software or the code guru that can "develop an e-commerce site overnight".
People talk about enterprise software all the time. Its not the size of the code that makes it enterprise class its the breadth of its adoption.
When you develop a "simple" app to allow customers debit their account and credit another one : The number of things that can go wrong are so many, its sometimes mind boggling.
When i write (or i'm supposed to write) code sometimes, I just sit and keep thinking. No matter how smart or good you are we all make mistakes, every line of code you write is a potential bug. So there no point rushing, Its a question of picking the one that'll have the smallest negative impact.
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 1:02pm On Mar 04, 2012
delomos:

Not to mention that agiling is just recently being mainstream (at least comparable to waterfall)
Hmm, I get your point. The original waterfall model is great, but for science projects, Defense contracts etc.
Business projects rarely have that level of requirements maturity. Hence the failure of "waterfall" to meet their requirements.

There are many methodologies that work well though, beyond agile. Microsoft used Spiral quite successfully,

delomos:

^^ don't forget I'm asking talking specifically about a SMALL WEB SOFTWARE COMPANY. That said, so a client is more interested in certification than a functionally working software?

The way you have procurement rules in the public sector , there are sometimes very strict rules on those who can bid for certain kinds of contracts. CMM used to be a criteria. Sometimes , it could be number of employees ,  >100,000.

Also how to do you judge, a capability of another party ? Its generally through 3rd party certification ( 6 sigma, CMMI, etc , ) So certifications matter.
And yes client needs to also look beyond certification sometimes (But its a good door opener)

Those certs are not easy to achieve, they require so much discipline. I worked for a coy that had all the resources, but simply didn't have the discipline to achieve CMM certification.

delomos:

#2. Code monkey is actually not a complement (or a synonym for a developer), it's used here in the context of: "if you put enough monkeys behind a type-writer, they'd write a Shakespeare, " Now, re-read my comment in that context.
Yes i know you didn't use it as a complement. I felt you used it to signify that a lot of though was not required of code monkeys. I beg to differ ,
Programming / Re: In Search Of "that" Software Development Methodology by Ghenghis(m): 12:14pm On Mar 04, 2012
@Logica & @csharpjava, you guys are head on ,

About agile, apart from all you guys have said there's a fundamental property which agile breaks : OWNERSHIP.

[list]
[li]It removes ownership, first from a single developer or a group of developers. So you can't sit on code and not let others review claiming "I'm working on it".
[/li]
[li]It enforces standards, if everyone is authoring a document, then it has to be done the way EVEVRYONE wants it. It would also make the code "probably" simpler or better because there's consensus.[/li]
[/list]Then finally the frequent release/milestone. Manages risk, no "big baang" approach that bring surprises when the customer has rejected 6 months of work.

Agile practices manages the most risky part of software development : Change in all forms

And yeah lots of Indian companies are CMM LEVEL 5, they need it to bid with the big boys (They use it as a leveler to compete with US firms).
A lot of people believe it hasn't achieved what it set out to do.

delomos:

^^So technically, these are just code monkeys, banging out code (and this sounds more waterfall-y if the programmers that will be implementing have no say in the system design)-- my question is specially direct at a small [web] software monkey.
And as a side-note, you're quite lucky you're not "inheriting" legacy codes or working up on frameworks.
Funny enough, there are very few ways of writing good code. Everyone(?) knows good code when they see it. The developer(or code monkey as you call it) has a lot of freedom in implementation. The Architect  largely defines boundaries. So yes, selection of frameworks and APIs is mostly architectural. 

I've inherited a lot of legacy code in different respects, and i believe it made me better. I see solid design choices that'll make you whistle and bugs that'll make you wonder if the programmer went to elementary school, all in the same body of code. That's the reality we live in.
Programming / Re: Java Collections Question by Ghenghis(m): 11:45am On Mar 04, 2012
Mobinga:



On that Boss poo.

OP see also the split(); method in the String class and the StringTokenizer Class.


If you insist smiley
Programming / Re: Creating Multiple Columns In The Db by Ghenghis(m): 8:56am On Mar 04, 2012
The approach isn't lazy, like Beaf I use the technique a lot also , but on the command prompt. You use code/sql to generate template like code/sql.

Though wrapping it with PHP probably isn't as flexible as simply storing it as .sql for later use.
Programming / Re: Java Collections Question by Ghenghis(m): 8:49am On Mar 04, 2012
Ironically is Map would provide an easier solution. I know where you're going with the array thing, there are 4 fields.
He'll then start juggling indexes ,

Simple solution : Associative array(a.k.a HashMap)
so instead of using indexes he simply uses his search key to find the record his interested in.

Fayimora:

[size=3pt]Its a trick to test the OP's level of expertise! Tell someone, that doesn't understand Arrays or even Lists, to use a Map is . . . . . . [/size]
You learn to write good code by reading good code written by others. Not by shielding developers from standard/basic data structures.
Programming / Re: Java Collections Question by Ghenghis(m): 6:56pm On Mar 03, 2012
Fayimora:

For starters 4 arrays!

Array ke shocked ? He needs a Map or 2 (HashMap).
Programming / Re: Can A Nigeria Programmer Afford A Range Rover Sport? by Ghenghis(m): 12:19am On Jan 09, 2012
My company has earned as much as $25, 000 on software i wrote (with just 1 enterprise customer, minus annual support fee etc.). The same software was sold to 2 customers (that's the entire market). I'm sure the total earnings must be close to $100,000 in 3 years.

It depends on who is selling and who is buying, there's no limit to how much can be earned, its a matter of meeting the right need.

would you rather try to sell $50,000 to 1,000 customers or $500 to 100,000 customers?
The big coys understand this secret.

I don't drive a Range Sport , not yet anyway. I'm sure its possible(my MD drove one, and he's a/was programmer). Just hang in there, and open your mind ,
Programming / Re: [problem] Write A Program In C++ That Finds The Hcf Of 2 Numbers Without Using A Recursive Function by Ghenghis(m): 8:00am On Nov 28, 2011
Fayimora:

Who said so? For me, the recursive algorithm even work faster(maybe a negligible time difference).

You can write almost anything both iteratively and recursively but you must have noticed that recursive solutions are always elegant

shocked embarassed
Programming / Re: [Beginner Assistance] How Do I Start Programming? by Ghenghis(m): 10:23am On Sep 13, 2011
@igbo-boy
All the negatives and positives you've heard are because of the seriousness of the task you plan to undertake.

I've sometimes wished i had more insight into medical engineering. You are uniquely placed to solve problems in the are of medicine through computing. Don't drop one for the other, both areas would serve you very well.

I'll advise you drop all the web/scripting/frameworks etc. Concentrate rather on programming, there is a mindset(way of thinking) required for expressing your wishes digitally. Attain this mindset first, you can pick up on web technologies or frameworks later (or when necessary).

My personal favorite is the java programming language, but others would do also : C#, VB.NET, python, Scheme, Lisp etc.

cheesy
Programming / Re: After Writting The Source Codes,how Do I Make It An Application Software! by Ghenghis(m): 2:02am On Aug 08, 2011
cod3mind:

how do i convert my source into an application that other people can use

that others can use ? People can use binaries you compile on your target platform of choice.
If you're talking about GUI apps, then its not a conversion thingy, you'll probably have to learn some platform specific API's or better still use GUI & Widget libraries like WxWindows (which happens to be the lib of choice for Bloodshed Dev C++).
Programming / Re: Defend Your Programming Language by Ghenghis(m): 10:35pm On Jul 12, 2011
GoodMuyis:


My own is Q-BASIC embarassed embarassed embarassed Don't laugh

As u can see it easy to learn
Difficult to Do Wonder programming grin grin grin
I also started with Q-BASIC, and it can be quite powerful (especially if you use Quick BASIC instead), however you have to move on with the times. Q-Basivc programs are basically running in real mode DOS.

you're better of using a modern compiler (I used Liberty Basic years ago) for basic, or better still use a .NET language or Java.
You'll get the best tools for free and the communities are matured and well established.

Java is my language of choice cause its consistently simple, powerful and expressive. Many languages might be better in one area or the other but hardly can you find anyone that has the broad appeal.
U can make a similar argument for C# et al.
Programming / Re: Help With C I/o Code by Ghenghis(m): 7:24pm On Jul 11, 2011
first rule of programming, "thou shalt debug thy own code"!

/* Program to display the contents of a file on screen */
#include <stdio.h>
int main(void)
{
//declare pointers file
FILE *fopen(), *fp;
int c;
//open file for read access
fp = fopen("data.txt","r"wink;
//read a character
c = getc(fp) ;
while (c != EOF)//while character is not end of file sentinel continue
{
putchar(c);//print character
c = getc(fp); // read next character
}
fclose(fp); //close file
return 0;
}
Programming / Re: Coding Challenge 3: Sum Of Primes by Ghenghis(m): 2:06pm On Jul 09, 2011
It doesn't look different but ,they are very different. Your solution might take n2 iterations, which is 2,000,0002.


I'll tell u something about primes, they are the building block of every other number. Hence i only need to verify if a number is prime by testing it against other primes. So once u find a prime number store it, you then use it to test other numbers.
Programming / Re: Coding Challenge 3: Sum Of Primes by Ghenghis(m): 1:32pm On Jul 09, 2011
Fayimora:

wats your runtime nd result?
Ghenghis:



Programming / Re: Coding Challenge 3: Sum Of Primes by Ghenghis(m): 12:58pm On Jul 09, 2011
public class Primer {

    static private  int MAX = 2000000;
    private int[] store = new int[ MAX / 2 ] ;
   
    public static void main(String[] arg){
        Primer p  = new Primer();
        p.checkPrimes();
    }
   
   
    void checkPrimes(){
        int primesFound = 0 ;
        long sumOfPrimes = 0;
        for(int i = 2; i < MAX ; i++){
            if(isPrime(i))
            {
                store[primesFound++] = i;
                sumOfPrimes+=i;
                System.out.println(i+ ","wink;
            }
        }
        System.out.println("total =" + sumOfPrimes);
    }
   
    boolean isPrime(int num){
        int cnt = 0 ;
        Double d = Math.sqrt(num);
        int lim = d.intValue() + 1;
        while(store[cnt] > 0 && store[cnt] < lim){
            if((num % store[cnt]) == 0){
                //not prime
                return false;
            }
            cnt++;
        }
        return true;
    }
   
}
Programming / Re: Coding Challenge 3: Sum Of Primes by Ghenghis(m): 12:53pm On Jul 08, 2011

Programming / Re: Coding Challenge 3: Sum Of Primes by Ghenghis(m): 11:37am On Jul 08, 2011
32 minutes seems too long for the problem,

When you post benchmark results like time, it would also be nice if you posted the system specs like CPU speed, processor type , RAM, OS etc.
Programming / Re: Is Anything Better Than The Netbeans Ide? by Ghenghis(m): 5:05pm On Jul 04, 2011
candylips:

yea IntelliJ. it is better than eclipse from my experience although it is not free


Yeah, IntelliJ is good but, I think eclipse still beats it in terms of 3rd party framework support.
Pick any esoteric framework you can think of, there is a high likelihood that eclipse plugins exist for it.
Programming / Re: Python Vs Java by Ghenghis(m): 9:05pm On Jul 03, 2011
netghost:

hmmm, ok oh
personally i think c and c++ are better choices
they are good choices, but not perfect. You'd have to use the special c/C++ compilers for the platform and not the general purpose one. i.e. every time new hardware is released, a new compiler and accompanying api and toolsets are also released. This is okay, but it ties you to the platform ,

candylips:

loose typing is not much of a big deal if u are using a very good IDE

loose typing vs. strong typing is not an IDE thingy. Its runtime type Identification, meaning i won't bother about this until runtime. Java is strongly typed meaning all[most] data types are determined at compile time ,

in python you can have a list that has string, number, character : the same is not possible in Java. If you have to do this in java u loose type information and have to treat the list as one of objects ,
Programming / Re: Is Anything Better Than The Netbeans Ide? by Ghenghis(m): 10:37am On Jul 03, 2011
Eclipse Strength is in its community, hence plugins and extensions.

I'll list some enterprise toolsets based on eclipse :

WSAD, Progress Sonic ESB, JBOSS IDE, LOMBOZ, SAP Business Objects, SPring IDE

the only one i can redily think of using netbeans is Jasper reports(I'm not sure).

The beauty of MyEclise is all the great plugins are brought together into a POWERFUL IDE.
If you're doing jsf or swing programming you'd probably use Netbeans, but if you're doing enterprise development: eclipse is by far the winner.
Programming / Re: Python Vs Java by Ghenghis(m): 10:27am On Jul 03, 2011
netghost:

cheesy cheesy grin grin
LOL
your funny, Assembly is a good approach, but not the only approach, assmbly the best approach? dude virus writing has nothing to do with programming the garden of eden, using your hands to drive in nails, does not make your hands better than a hammer,
NOTE: a programming language is only as good as the programmer

I largely agree with @SayoMarvel, you create viruses ( and such) by utilizing loopholes or breaking the rules with regards standard practices. For example most compilers(higher level languages) would try to prevent you from buffer overruns, using memory outside your segment, etc.
If you need to what's not standard then you need to drop all the safety harnesses, Assembly language give you no harness.

Also it takes time to program in assembly, though its not as bad as its usually portrayed. I don't think i'll write a GUI program in assembly but there are certain parts of a program (especially those that deal with low level utilities or drivers) that assembly is best suited.

Python is cool and useful for quick prototyping, but once i get my algorithm or done my initial tests , I move to Java.
I respect the Python, TCL/TK and perl languages, but i find them most useful for stringing system utilities together. Python is definitively not more object oriented than Java, Its Loosely typed.
Programming / Re: Is Anything Better Than The Netbeans Ide? by Ghenghis(m): 2:10pm On Jul 01, 2011
Fayimora:

Hmm no matter what I still think Netbeans is the best. After all thats what the java developers use.

The open nature of Java means other parties have an equal chance of doing something great on the platform. Oracle and IBM made much more money from Java than SUN ever did.

The eclipse community is a colossus compared to Net beans, and the eclipse team broke grounds in Java. Really, i've been using eclipse long before net beans came along (the days of Forte for Java). Net beans is trying to catch up. Its probably great for new developers, but eclipse seems to be far more productive.
Programming / Re: Is Anything Better Than The Netbeans Ide? by Ghenghis(m): 10:34pm On Jun 30, 2011
eclipse is really cool, but if you want to get stuck on a Java IDE for use MyEclipse. Its a developer's dream.
It feels much more natural than net beans.

Another jazzy IDE is intelliJ IDEA.
Programming / Re: Please What Really Is Object Oriented Programming. by Ghenghis(m): 8:56pm On Jun 19, 2011
To add to what everyone has said and dell_net's example OO allows you to express complex programming tasks in the language of the problem.

Imagine baking bread : the recipe might be :

1 gram flour
2 spoons sugar
1 teaspoon yeast etc.

The recipe then goes on to show you how to mix and how long to bake. Simple enough ?
The complexity that's hidden away is you didn't worry about how was the flour made ? corn, yam, wheat ? Who planted the corn ?
What kind of oven was the bread baked in ? blah blah blah

OO allows us to worry about just parts of the problem that are immediately important/interesting to us.
dell_net:

The simplest way to use other classes is through inheritance. Imagine now you want to make your car to fly, all you have to do is inherit (and implement) the features of an airplane. Thus class car can be said to inherit from class airplane which produces a flying car.

Yes dell_net is right but it's also usually the wrong way, roadsta makes a good point about composition. I don't have to be a plane to "fly" i could simply use/board a plane.
(dell_net i get what you're trying to pass on, just wanted to show @0Edward0 how OO focuses on everyday language rather than **$% ) wink
Programming / Re: Please Can Some1 Convert This To Date For Me? by Ghenghis(m): 6:42am On Jan 14, 2011
look for a date constructor that accepts a long as an argument
Programming / Re: What Laptop Spec Is Good 4 Programming And Graphic Design? by Ghenghis(m): 8:41am On Dec 13, 2010
the compaq seems fine, though a bit pricey.

One of the more important things for a laptop is mobility, which comes to battery life. If you envisage long periods better you recharge then look for a laptop with i5 proc. else the Compaq is great.

You should invest in extra RAM also.
An it seems to ship with SUse or DOS , That's not good if you plan to use windows ,

(1) (2) (3) (4) (5) (6) (7) (8) (of 8 pages)

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 86
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.