Software Development and Programming Careers (Official Discussion Thread)

Nomadum

Woke Dreamer
Joined
Dec 23, 2014
Messages
4,622
Reputation
-705
Daps
9,074
Reppin
Nothing
for all the programmers and engineers (both Software and Hardware) I have a serious question,

What's you all's informed or personal understanding Artificial Intelligence?
  1. Is there ever going to be a 'true' A.I. Developed?
  2. Will it only mimic human sentience or actually form a sentience of it's own?
  3. Will it be hostile?
  4. How far out do you think we are at developing such tech?
 

Data-Hawk

I have no strings on me.
Joined
May 6, 2012
Messages
8,419
Reputation
1,985
Daps
16,285
Reppin
Oasis
Thanks for the heads up. only question I have is, what exactly is an Assembly Language? and why did you suggest C over C++? I know alot of people like C++ and I seldom hear folks mention C, which is why I'm asking.

Most security programs are written in C, all of this kind of goes back to the *nix days. Most hackers used C. ( There's a ton of history ) which would take me all day to go over. LOL

More people use C++ in software development because of OOP ( object oriented programming ), which if you are trying to develop an exploit, you don't need all of that.

The playstation exlpoits = C code

Linux kernel = C

DeCSS ( allowed you copy DVD's ) = C

For Assembly language

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


Not to cut things short, it would just take forever to go over. Best advice is start googling the topics and check out Linux security sites.
 

Nomadum

Woke Dreamer
Joined
Dec 23, 2014
Messages
4,622
Reputation
-705
Daps
9,074
Reppin
Nothing
Most security programs are written in C, all of this kind of goes back to the *nix days. Most hackers used C. ( There's a ton of history ) which would take me all day to go over. LOL

More people use C++ in software development because of OOP ( object oriented programming ), which if you are trying to develop an exploit, you don't need all of that.

The playstation exlpoits = C code

Linux kernel = C

DeCSS ( allowed you copy DVD's ) = C

For Assembly language

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


Not to cut things short, it would just take forever to go over. Best advice is start googling the topics and check out Linux security sites.
original.gif


thanks for the information!
 

Type Username Here

Not a new member
Joined
Apr 30, 2012
Messages
16,368
Reputation
2,385
Daps
32,640
Reppin
humans
Thanks for the heads up. only question I have is, what exactly is an Assembly Language? and why did you suggest C over C++? I know alot of people like C++ and I seldom hear folks mention C, which is why I'm asking.

Assembly language is one step up from machine language (straight up binary, 1s and 0s) but some people say it is machine language essentially. It is very good for when complete management of space, memory, and speed is needed. For example, most video games up until about mid-life of SNES was programmed in a form of assembly language . They just did not have the space and power to put a full time compiler in those systems. So when you play a lot of NES games, ad even Super Mario World in the SNES, it was all assembly language.

As far as using C, it is a language much closer to the metal than others. For example, the Java Virtual Machine and Python interpreter, are programmed in C for most part. Almost every major operating system (computer or mobile) has a kernel written in C. The kernel is the heart and brain of an OS. So when you want to fukk something up, guess where you have to go?

Also, C/C++ still dominates the embedded area. Most of today's console systems have C/C++ Dev kits.
 

keepemup

Banned
Joined
Jun 9, 2012
Messages
4,743
Reputation
-977
Daps
5,349
Assembly language is a collection of the native instruction set understood by a processor as determined by the processor architecture.
 
Last edited:

Type Username Here

Not a new member
Joined
Apr 30, 2012
Messages
16,368
Reputation
2,385
Daps
32,640
Reppin
humans
Assembly language is not machine language. Here is an explanation:

Let's say we have a 16-bit word for the CPU. In machine code/binary, it looks like this (I'm making one up entirely):

0000010000100001

16 bits. Each 4 bits corresponds to something:

Red: Opcode. What do you want to do with the registers. In this case let us say that 0000 means ADD
Blue: Destination Register. Where you want to save the sum. I picked R4
Green: Source Register. First register we are pulling from. It's called source because with different opcodes, it plays different roles. Here I picked R2
Magenta (no hom0): Target Register. Second Register we are pulling from. It's called target register because with different opcodes, it plays different roles. Here I picked R1

That's what the CPU understands for that "pattern" of electrical on/off .

In Assembly, all we would type would be something like:

ADD R4, R2, R1

It's much easier to remember that syntax than memorize bit patterns and codes. Easier to read as well. This same mindframe is what lead from the jump to assembly to higher level languages.


Just a quick overview I made up. Things get more complex, order changes, etc.. depending on different things.
 

semtex

:)
Joined
May 1, 2012
Messages
20,311
Reputation
3,386
Daps
46,185
Been wondering, is C++ still a marketable skill? Or even C?

I feel like in a sense it is, because every prestigious company is gonna have old legacy shyt in their code base
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,290
Reputation
5,551
Daps
83,478
I would say C and C++ can be a very marketable skill, especially if you're going into game programming. It also serves as a distinguishing point from all of the Java and scripting language programmers(Ruby, Javascript, Python, etc.) that are starting to flood the market. Being a competent programmer at C/C++ also possibly hints that you have a deeper understanding of what actually is going on with programming than programmers who typically deal in higher level languages... Assembly is another, that while not something you'll probably find jobs easily in, it is a nice bullet-point to have on your resume because it shows you're serious about your field.

I eventually plan on picking up some assembly eventually, but C++ it is for now and possibly C. Memory management isn't necessary to be functional since a lot of languages are garbage collected, but it is very useful in that you now have some idea of what the computer is doing behind the scenes. For example, I heard of 'references' in Javascript while reading the books, but I didn't really understand what that was all about until I started looking at c++ and dealing with references explicitly. I'm still quite basic in my C++ learning, but it's been quite informative.
 

Richard Wright

Living Legend
Joined
Jan 16, 2013
Messages
3,401
Reputation
690
Daps
6,375
I love the direction this thread has been going in :salute:

Right now ive been hacking on os161, a simplified linux kernel created for Harvard's operating systems class. I implemented all of the synchronization primitives (locks, rw locks, conditional variables).

Now im moving onto implementing user space process support and file system support.

Process support is really cool, cloning processes, abstracting processes, running executables. Really makes me appreciate operating systems.

execv():

the function im implementing to run an executable, basically have to do three things:

  1. Copy arguments from user space into kernel buffer
  2. Open the executable, create a new address space and load the elf(executable code file) into it
  3. Copy the arguments from kernel buffer into user stack
  4. Return to user mode
1 and 3 are actually pretty difficult, and I have to maintain synchronization with the rest of the system.

C is definitely the most fun language I have worked in. I want to do security so learning OS is very helpful.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,290
Reputation
5,551
Daps
83,478
I think the beauty of something like C is it's simplicity. It removes a lot of the crust that other languages start building up by competing on a feature basis with other languages. While that is a great thing for those other languages, it's also refreshing to see how much you can do with the basics. It helps you understand WHY something like OO eventually came about. As time goes on, it gets harder for a lot of new programmers to really understand what is essential because there are so many new features being added to languages. C if also fairly low level as far as the more human readable languages go, so it'll let you get a closer idea of how what you're doing maps to what the computer is doing. Probably not the language to learn if you just want to rush out and get a job that pays, but it's something to learn if you love programming.
 

keepemup

Banned
Joined
Jun 9, 2012
Messages
4,743
Reputation
-977
Daps
5,349
Adding all integers through 1000 divisible by 3 or 5...

Code:
#include <iostream>

using namespace std;

int main()
{
    int i;
    int sum = 0;

    for (i = 0; i<1000; i++)
    {
        if(((i % 3) == 0) || ((i % 5) == 0))
        {
            sum = sum + i;
        }
    }

    std::cout <<"The total is " <<sum;
    return 0;
}
 
Last edited:

keepemup

Banned
Joined
Jun 9, 2012
Messages
4,743
Reputation
-977
Daps
5,349
for all the programmers and engineers (both Software and Hardware) I have a serious question,

What's you all's informed or personal understanding Artificial Intelligence?
  1. Is there ever going to be a 'true' A.I. Developed? I don't think so. I do not believe it is possible to program a machine to have an identity and motivation of its own.
  2. Will it only mimic human sentience or actually form a sentience of it's own? Mimic.
  3. Will it be hostile? If someone programs it to be hostile then it will be hostile.
  4. How far out do you think we are at developing such tech? I think Watson is the best mimicking thus far.
 

Type Username Here

Not a new member
Joined
Apr 30, 2012
Messages
16,368
Reputation
2,385
Daps
32,640
Reppin
humans
Python code for finding the sum of all integers < X that are divisible by either 3 or 5:

Code:
def ThreeFiveMod(num):
    sum = 0
    for number in range(1, num):
        if (number % 3 == 0) or (number %5 == 0):
            sum += number
    print "\nThe sum is " + str(sum)

def main():
    number = int(raw_input("Please Enter an Integer: "))
    ThreeFiveMod(number)

main()
 
Top