Back to Basics: AND vs. OR vs. XOR

19. August 2011

We often think of computers as working with numbers, and in the purest sense we are, but those numbers are simply 1s and 0s. Normally these bits can be grouped together to represent much larger numbers but as a developer, you'll often times need to use them as bits and you forego addition and division for "bitwise" (sometimes referred to as Logical) operations. Bitwise simply means that you're dealing with individual bits and not the number as a whole, the representation of the bits working together to make a larger number.

More...

C#, Computer Security, Design Pattern, Development, Misc

In My Own Defense...

25. February 2011

In case you don't know, I've been developing a new encryption for six years now. Timeshift has been my pride and joy. It has outlived friendships, high school, even an engagement. It's my brain child, along with my buddy Karl. As development for it progressed, it became clear that I either need a lot of time to expand my knowledge, or aid from those who have. Over the 6 years, I've found both. Early on, I discovered Bruce Schneier's site. He seemed to be a big man in the industry so I was surprised his email was listed on the site, even more surprised when I received a response. I sent him an email saying that I was having problems explaining an aspect of my cipher and I was wondering if I could have some of his insight. I received the shortest email ever as a response:

More...

Computer Security, Misc ,

Why The New Redesign

20. December 2010

So the new design, which I hope you all like, came out of the blue. Even I hadn't planned on the change for more than an hour or two. It was brought to my attention when I received an email from an attentive reader who emailed the address in the binding entry that there is no contact page. I had remembered fiddling with the outgoing email settings for the site so I knew that somewhere there was a page. Well, I found it after messing around with the design I had chosen. In case I haven't mentioned this before, I cannot come up with a decent design to save my life. I'm certified in web development and everything but I'm just not creative. I know when a layout and design works, but I have to work really hard to make it work. So I borrow freely available designs for my BlogEngine.net setup I have here. The design I had previously picked turned out to be hiding quite a few things from you guys. So, just a real quick run through of what is available to you.

More...

Misc

I've (re)Discovered Project Euler

29. November 2010

I've heard about ProjectEuler.net over a year ago and it quickly slipped my mind. Last week I rediscovered the site and finally registered with them. Project Euler (according to Wikipedia, pronounced "Oiler") is a site of over 300 mathematical problems with the intent of them being solved through creating an efficient algorithm and programming it out to get the result, read their about section here. Once you register, it'll keep track of which questions you've completed and what the answers for those problems were. Upon completing a problem, you can also access a forum thread about that problem. There, you can see how other people solved the problem. Usually other users will post their code or explain their approaches.

I have created a solution in Visual Studio that all my projects for every problem is going into and I'm taking on the challange of getting as many done as possible. At this time of posting, there's 311 problems and I've completed the first 18. I'm slowly working my way through them and I'll keep you all posted. They're constantly adding new problems so reaching 100% will be short lived if it happens.

I highly recommend this site to developers looking to stay on their mathematical game or mathematicians who are looking to learn how to program. Regardless which you are, you're going to better learn to develop algorithms. I know I've learned quite a few ways to interact with numbers. The biggest surprise for me was how to count the number of divisors a number has when you know it's prime factors. Anyway, have fun with this site.

Advice, Code Optimization, Misc , , ,

Censorship and Free Speech

24. October 2010

The organization of my previous post confronted me shortly after a misfired tweet on my part exposing who the organization was. I admit my fault there, but the head of their IT was quick to ask me to retract my article. For a few hours, it was retracted, but I was not in a submissive mood. They made the security error, they left it there for years, I found it. I made a few changes and put it back up as you can tell. I'm not going to let them think they can control what I post, hence I'll tell you the story without their permission or editing. I'll still retain their anonymity but I feel they were less than understanding about the ordeal.

Think of this as my public rant about the IT of this particular organization. Like I said, I plan to keep them anonymous to prevent them of the shame they are due.

More...

Misc , ,

Artificial Intelligence vs. Augmented Intelligence

1. October 2010

Peter Patton is an incredible man who really gets me to think about new subjects and has led me to think about artificial intelligence like I never have before. He introduced several theoretical scenarios to me and let me borrow a book: Minds, Brains and Science by John Searle. In the past few days, I've really been thinking about what all Patton and Searle have said. I have either made some huge breakthroughs, or I'm filled with a lot of hot air. Regardless, I feel I should share my findings.

Before breaking apart some theoretical scenarios, I pose a theory. Souls. Although spiritual in nature, I plan to remain factual in my observations. I believe every human has one, but I've never heard of a good definition for what the soul is, also there doesn't appear to be a valid test for the presence of a soul. Searle talks about the Mind-Body problem in his book, about how a subjective entity such as the human mind is connected to such an objective item as a physical brain. Given his argument, I'd have to say that the mind is the soul, at least, until I hear a better explanation. To me, that wraps the personality, their creativity, and everything that makes you, you, into one package: a Mind-Soul. I have no proof... welcome to philosophy. I brought this up first because its existence offers interesting questions later on, I'm looking to explain it all together, but so far no luck.

More...

Artificial Intelligence, Misc, Philosophy , , , , , ,

Soft Skills, Social Networking, and Word of Mouth

3. September 2010

So you can code. Maybe you have a library of language specifications memorized or maybe you can implement MVVM, MVC and other code architectures efficiently in your sleep. Awesome skills like these bear little fruit if you can't get or keep a job. You still need a skill set that applies to the company's needs, but sometimes what you're capable of is not enough to stand out. Social Networking, if you have lived under a rock, is a great tool for getting your name and experiences out there for potential employers to see. The key to social networking is connectivity. Not just connecting you to other people, but keeping all the social networks you use connected to each other. Connect your Facebook to your Twitter and your LinkedIn accounts, whatever accounts you get, try to link them. This will help make social networking easy and efficient by the fact you only have to update one account (probably Twitter) and having all your other networks stay up to date with it. Once you've made your information easy to access by linking accounts, you have to make sure you keep you're content professional and relevant. Don't be one of those people who posts about what they eat or what the neighbor's dog is doing. Nobody wants to read that, not even your most personal friends. Getting your content out there is just the beginning. If you're contacted for a job, your soft skills will make or break you. Soft skills are things like manners, personal hygiene, and basically how you carry yourself. A good developer who's a bit of an ass can be overlooked during the interview process, there are plenty of good developers out there. Just don't be that guy.

More...

Advice, Misc , , , , , ,

What Google Native Client Means For Web Apps

31. August 2010


In my last post I talked about the applications of cloud computing, and my own personal challenge to commit to using them over their desktop versions. What I forgot to mention is what is in store for the cloud computing world. Currently, the main languages that make it to the browser are HTML, Javascript, and CSS. These languages are parsed by the browser and presented to the user for display or interaction. For more in depth content, such as the video I've included in this post (if I can sit through it, you can), these take plugins where the browser passes control to compiled code that generally runs outside of the browser. The dominant choice for functionality like this is usually Adobe Flash, although Java has shown it's uses. The general process is when you want to watch a video, an HTML page is sent to your browser containing an object tag that tells the browser what file to pass to what plugin, the file (the video content, most likely flash video, flv) and the video player code-base (written in compiled ActionScript, I believe) are passed on to Adobe's flash plugin for your browser, at which point the ActionScript is run, which parses the video and displays it frame by frame in the flash control which the browser has next to no control over. A further, more humorous, and probably much more accurate, breakdown can be found here.

More...

Advice, Misc , , , , ,

How I Plan To Live In The Cloud

28. August 2010

Thanks to the internet, information is readily available anywhere and everywhere. From desktops and laptops to mobile devices, even TVs! The internet has expanded beyond just making information available anywhere to include services that let you store some files, manipulate others, share all of it, and be able to access all your information from any computer that has internet access. There are a lot of pros and cons to working in the cloud. The biggest con is that it requires the internet, and usually fast internet. Of the pros, the best seems to be that you can access all of your stuff from ANY computer connected to the internet, and as smart phones get smarter, they can help keep you connected to your Cloud services. This school year, I challenge myself to do as much as I can in the cloud.

The college world can be demanding, but the internet is ever changing; adapting to whatever needs the users can come up with. There will be papers to write, research to be done, presentations to give, group projects, all sorts of of expectations and requirements. Nothing would be worse than a hardware failure and losing all of your projects and data. Last week, I received a frantic call from a web designer friend who was working on images for a site. She would edit them and place the finished images on her external HD. Her HD was brushed off the table and fell two feet, just enough to really mess things up. I did what I could over the phone to help her, but my best advice was to begin re-editing the images as fast as she could for her deadline that afternoon. It goes to show that these setbacks are random, sometimes inevitable, and always inconvenient. So it's better to be proactive rather than reactive. I mentioned to her about services such as Dropbox that would easily let her sync incomplete folder from work to her home computer so she can wrap them up and sync them back with her computer at work. This is part of the reason I want to relocate all that I can into the cloud. To be preventative about losing data.

More...

Advice, Misc , , ,

Simple Security Mistakes In The Wild

19. August 2010

Problem solving is needed for any branch of software development. Looking at a problem and being able to find a fast, efficient way to solve it is what software development is ultimately about. It takes a whole new level of problem solving skills to design secure systems. Systems that can keep out the most dedicated of intruders and yet be a hassle-free experience for those who truly belong there. Computer Security is a fascinating field with unique challenges but for those of you interested in entering the field, you'll probably need a change in mindset.

First, some terminology. It's not unusual for developers to take on several different positions in a project, such as database admin and programmer for a website or some other project. This means that the developer wears several "hats." As hacking eased itself into existence, "hackers" unknowingly formed two different groups: white-hatters and black-hatters. A black-hatter is what most people erroneously think of when they hear the term "hacker." Black-hatters infiltrate, penetrate and generally abuse a system for their own personal gain, for another person's lose, or sometimes simply because they can. A white-hatter uses all the same tricks and exploits that a black-hatter does except that they do no damage. Sometimes a white-hatter is hired to evaluate the security of a system by attempting to break it and reporting their findings back to whoever hired them. Not all white-hatters make a career out of it though. To some, its about the expansion of knowledge and facing the challenges that hacking presents.

More...

Computer Security, Misc , ,