Sunday, June 30, 2013

Mac Linux USB Loader Starred 50 Times on GitHub!

Mac Linux USB Loader was recently starred for the 50th time. Thanks everyone for your continued support - it lets me know that this tool is needed and keeps me going on development.

Also, thanks to everyone who posted articles on Mac Linux USB Loader, added it to Softpedia, and wrote about it on Wikipedia. You guys are the best!

Tuesday, June 11, 2013

Xcode 5


Apple just yesterday revealed the interface to the next iteration of Xcode 5, Apple's premier development IDE. It can, unfortunately, sometimes break compatibility with older Xcode versions. But a lot of things are hopefully much easier now. I look forward to trying it and I hope you all try it out.

Monday, June 10, 2013

A Demonstration of the UNIX fork() Call

UNIX's fork() call is a fantastic way to have one executable divide itself into two processes, each of which can perform different code from a single codebase. It is also useful for apps that should be started from a command line but shouldn't be vulnerable to being killed with Control-C or the death of the shell. This is how daemons work in UNIX/Linux/OS X. I believe (though I may be mistaken) that this is the basis of Google Chrome's multi-process browsing feature.

 //  
 // fork.c  
 //  
 // Created by SevenBits on 4/14/13.  
 //  
 // This demonstrates how to fork a process. Basically, what happens is, one  
 // process will fork itself, creating a cloned process. The return value of  
 // the fork() call can be used to direct one process to perform one task,  
 // and the clone to perform another! Inter-process communication is also  
 // possible.  
 #include <stdio.h>  
 #include <unistd.h>  
 #include <stdlib.h>  
 int main() {  
   printf("We're going to fork ourselves. This will spawn multiple processes,");  
   printf(" which will each count from 1 to 100 in a different process.\n");  
   pid_t pid = fork();  
   int i;  
   switch (pid) {  
     case -1:  
       printf("ERROR! Something went wrong!\n");  
       return 1;  
       break;  
     case 0:  
              for (i = 0; i < 100; i++) { // This runs in one process.  
                printf ("A: %d\n", i);  
         sleep(1);  
              }  
       break;  
     default: // This runs in another process (the parent).  
              for (i = 0; i < 100; i++) {  
                printf ("B: %d\n", i);  
         sleep(2);  
              }  
       break;  
   }  
   return 0;  
 }  

I officially place this code in the public domain. Do whatever.

Friday, May 31, 2013

Mac Linux USB Loader 1.0 Finally Released!


This, my friends, is the window of an application's final release. Mac Linux USB Loader is now at 1.0! Read the release notes here!

Development will continue as usual. Sorry 1.0 took so long, but you know how it goes. :) Well, see you at 2.0!

Thursday, May 9, 2013

Linux, OS X, and Windows... oh my!

This post is being written in lieu of a serious update in a while. First, an update on Mac Linux USB Loader. As indicated by my lack of commits, I haven't really continued coding the application in a while. This is because I've decided to take a hiatus from coding on it so I can focus on my personal life as well as on my other projects. I have lots of programs sitting my Code folder on my hard drive and some of them, like Enterprise, my Linux EFI boot loader, and Invasion, my first person shooter, have development levels akin to abandonment.

It's always difficult when a program isn't being developed. It leaves those who rely on the project in the dust and perhaps unable to perform their daily tasks. Eventually the program gets dated and it reaches the point that no matter how good the application is (or was), nobody can use it anymore. I have been a victim of this myself when looking for good development tools and libraries. Sometimes, a tool just too beneficial to let die gets picked up by another author who works on it. But many die alone.

Looking back on my own really old code projects, I've seen this myself. Old games I've worked on for a few days and then scraped, pieces of code that are now outdated, etc. I've written programs for OS X, Windows, even Linux... Even a project you're super thrilled about can meet its day. It's unfortunate, but true.

I hope to pick up some additional projects for the Mac App Store. I have a few ideas already, but I'm keeping them a secret. I do have some ideas for all of my old code, however. One of these days, I'm going to grab a bunch of old code that I've written or that has been written by others, and I'm going to look at it on this blog. Some of my old programs will go open source as well with a kind of scrap pack that I'll open source and put on GitHub. It'll be downright terrible code, but maybe somebody can learn from it.