Wednesday, December 22, 2010

Scirch - Language Compiler

Scirch is the name of a programming language I built. Scirch was made in order to make it easier for people to simulate simple logic circuits and gates. Using Scirch, users are able to quickly hack up a circuit complete with subcomponents, and run them from within a main circuit. They can pass in as many inputs as they want and see the values of those inputs at any time.

The programming language is very simple and has similar syntax to c. The language has a defined syntax and source code has to be put into an extra file. Scirch was built using ocaml and ocamlyacc and has the ability to execute both native Scirch code as well as fake bytecode.

Making the project.


Running Scirch with one of the test files -- test-gates.sc.
This test file prints out the truth tables for each of the supported gates: AND, OR, NAND, NOR, NOT.


Running Scirch with another test file -- test-callfunc.sc
This test file checks Scirch's ability to create and call functions.


Running Scirch with a third test file -- test-setvatrs.sc
This test file stores values in variables and uses those stored values in arithmetic operations.

Sunday, November 28, 2010

Pong Revolution

Pong Revolution is a game that I worked on with some of my friends. As the name implies, it is a game, coded in Java, that runs over a network. Essentially, it is pong in a circle.

The game is played with up to four players on a network. Of course, there is a client application and a server application. The server runs and the clients connect using the IP address. We used Apache Thrift in order to implement the network code and send the game objects.

There are two teams: Red team and Blue team. There are two players on each team. Balls spawn out of the middle of the screen and players score points by hitting balls and having them bounce outside of the screen. Players are able to make their paddles jump in order to intercept balls from opponents. Players can also combo to each other and get extra points for bouncing the ball between their teammates. The game is unfinished and we still have some work to do, but the core of the game (volleying balls, jumping, and collision detection)

Update: The java version of the game is complete!

Saturday, November 13, 2010

Liars Dice - An Enterprise Java Beans Game

I just recently finished the first iteration of a game called Liars Dice!

Originally, Liars Dice is a game that can be played with your friends and without your computer. It involves rolling a number of dice that you can hide from your opponents. Players proceed to bid on the total values of dice in the circle. For example, a player might guess that there are 4 dice with a face value of 3. The next player can either make a higher bid, or they can challenge the player before him. If the bid is valid, then the bidder wins. If the bid was not valid, then the challenger wins. For more details, check out this link:

Liars Dice

Anyway, I have implemented this game using EJB. The game uses a server-client setup with a Glassfish database for holding users. The server manages interfacing with the database, and holds session beans and entity beans that clients use to interface with the aspects of the system, such as the games and user accounts. The EJB application client holds all of the Java Swing GUIs and the logic to move between them.

The database holds all of the users that have registered with the game. Each user has a name, password, wins, losses, ban status, and other statistics. There is also an administrator account who is able to ban users and prevent them from logging into the system.

I used the following technologies to build this system:
Netbeans (Java Swing)
Glassfish Server
Java Databases (SQL)

Check out the video:



Sorry for the ultra sound-video lag. I need to find some new screen recording software!

Thursday, October 14, 2010

Tech is the World gets a new Flex interface!

I have created a new interface for my blog! This blogspot has served me well, but I think I need an interface that shows the projects in a more concise manner and then links to the individual blog posts. This follows a more details on demand approach, allowing a user to view all the projects quickly and easily, then providing more information if the user desires.

Check out the web interface here.

This is a screenshot just for reference sake. If you happen to come across this blog, please use the new interface!

Thursday, August 12, 2010

Jumping into the world of Android development!

I recently downloaded the Android SDK to my computer and have been developing programs that can run on Android platforms! I've been doing this for a few weeks now. I didn't make any blog posts about it because most of the projects I am currently working on I would like to keep under wraps. However, I recently whipped up an an application that can intercept data received through an SMS text message. Here's what it looks like:
The layout is quite simple, but when this app is running, it is able to intercept signals that designate an SMS and display that information on the screen! Out of the box it sounds silly, but if i could send some other kind of data via SMS, then more doors may open up for this application! We will see where things go from here.

Also, I have to give credit to Google for making an SDK that is very easy to work with and understand. Anybody who is remotely interested should take a little time to download the SDK and try out some sample apps!

Saturday, July 10, 2010

Bug File Server

The past week, I have been working on a fileserver that works on BUGs. When the program is present on the bug, the user can navigate to a URL specified by the program. The URL returns an html page containing information on the files located on the BUGs file server. Files can be uploaded to the bug and downloaded to a machine at a remote location (as long as the bug has an accessible IP address)



Check the application page out here.

Here is a picture of an updated version. It looks more professional and has a couple of extra features added, such as ability to download files.

Friday, June 25, 2010

Bug Labs Bugdash

This week, I worked on modifying BUGdash.

Essentially, BUGdash is a program that allows users to administer their BUG from the web. They can navigate to a url and perform tasks such as reboot their bug, install packages on their bug, and view system information about their bug.



I added a secure login feature that allows users to password protect their BUGdash. When they log into BUGdash, they are able to set up a login and password configuration. Once set up, whenever the user attempts to view the BUGdash, they are prompted with a username and password. In the backend, data is securely saved and encrypted to ensure safety.

Bug Labs provides a great community for developers and all of the code is open source, so if you are interested in doing some java programming, check out http://www.buglabs.net and jump in!

Friday, June 11, 2010

Bug Labs Web Service

http://www.buglabs.net/

Currently I am working on an open source hardware platform known as BUGs. They are created by this company called Bug Labs (link at the top of the post).

Bugs are small, modular computers that focus on versatility. Each bug has four slots on it for attaching modules. Available modules include LCD touchscreen, GPS, motion sensor, camera, and many more.



Currently, I am writing an application that functions on a BUG platform. The program makes use of web service functions provided by bug labs that essentially allows bugs to be small, portable web servers. My program makes use of the web server functionality and returns a web page that has information about the BUGs battery information, operating system version, etc.

The application is private and only able to be viewed by collaborators, but here is a screenshot of the page.

Saturday, May 22, 2010

Planes Fly Go Boom

Hello everyone,

This entry is about a game called Planes Fly Go Boom or PFGB for short. It is a simple game. A plane constantly flies around the screen without being able to stop. Also, enemy planes constantly fly in from the left side of the screen. The object of the game is to:

1. Destroy as many enemies as possible
2. Not crash into any enemies

It is made using simple sprites and collision detection in C# using Microsoft XNA.

The next games that I develop will use DirectX rather than XNA. I am trying to explore different methods of game creation and see what I like best.

Video Demonstration

Tuesday, May 11, 2010

Rockfall 2

I am currently working on a project that I like to call Rockfall. The reason I am calling this project Rockfall 2 is because I originally created this project long ago using c and OpenGL. However, the code was lost, so I was never able to run it or look at the game again. So this is a 'Rockfall restoration project' of sorts. I am using C# and XNA in order to rebuild the project. It is still in an early phase. The original rockfall included:
  • A home screen allowing the user to select difficulty
  • Difficulties allowing for rocks to fall at different speeds
  • Score keeping
  • Health bar that depletes as rocks hit the bottom
  • Special "slow time" blocks that slow time for a certain duration
  • Special "mega destruction" blocks that destroys all blocks on the screen
Here is a screenshot of Rockfall 2 v0.5:


This screenshots shows rocks on the screen. In the game, they are falling towards the ground. In the lower left hand corner, you have some health. When a rock passes the lower bound of the viewport, you lose health! Also, extra health bars occasionally fall in place of rocks. If you click them, you can gain more units of health for the user. So I still have to implement slow rocks, destructo-rocks, and extra difficulties.

PART 2

I finished adding more of the features to rockfall including special rocks and difficulties. Here are a few shots:

As far as game engine and mechanics go, I think I am done. What I would like to do now is add some effects. Sounds, cool images, and effects sound really cool right?
















3D Tangrams

Hello everyone.
Welcome to 3D Tangrams. A 3D puzzle game based on the classic Tangrams game.

Our program allows the user to move 3D shapes around a virtual 3D environment.


  • Objects can be moved around the environment
  • The environment is fitted with a ground and a grid for orientation
  • Objects translated snap around the grids coordinates
  • Target model is displayed in light blue and the user attempts to recreate it
  • Objects can be rotated around different axes to match the model
  • System plays sounds when objects are placed properly and when target model is completed
This project was created using Microsoft Visual C# with GoblinXNA. We also did work using the Vusix Eyewear system that I mentioned in a previous post. The eyewear consists of a face mounted visual projector system with a camera on the other side. Thus, the camera mounted on the eyewear is always facing in the same direction as the user's eyes.

Video Demonstration


Demonstration with the Headset



Thursday, May 06, 2010

Flexible News

FLEXible news is a news aggregation and search application that will allow you to view a large number of different types of news articles in one go. Using FLEXible news, you can view the latest happenings from around the world, filter them using a variety of different categories.

This application uses Adobe Flex and Microsoft Bing.

Features:
  • Flexible News supports the addition of extra categories into the search bar.
  • Allows users to select and deselect categories, creating a dynamic filter that leaves out unwanted content.
  • Allows users to view "details on demand" by providing more information with the mouse tooltip, and the entire article with a mouse click
  • Allows users to register and use settings with their account to save views and articles for easy setup and everyday use.
(link active as of 7/20/2010)

Simple Demonstration Video:

Friday, April 30, 2010

Project Vusix iWear




I am currently working in a group developing a project that uses Vusix iWear VR920 hardware! It is still a work in progress but it should be complete in a few weeks. I will keep hidden the actual application, but here are some screenshots of the eyewear and some tracking arrays that we are working with.

Thanks for reading and there will be more on this project in a few weeks.

Wednesday, April 14, 2010

SQL Web Front End Interface

Hello everybody. Hope everybody is well and enjoying the nice weather!

This post is about the webpage that I just created. The webpage is actually a front end for my SQL database. The database is a Video Game Database and the webpage allows users to select which attributes of the game they would like to see as well as filter results based on other video game attributes.

The technology I used in this project includes Eclipse (Java Enterprise Edition), Apache Tomcat, SQLplus, Java servlets, and a little bit of HTML. Feel free to leave a comment if you would like more information!

Video Demonstration

Saturday, April 03, 2010

Augmented Reality Program


Hey everyone, hope you guys are enjoying easter weekend. Today was nice and sunny but instead of going out and enjoying the weather, I was inside working on this program... but seeing as how it is night time, I can take a few minutes and write a post about it.



This is a screenshot from my program. It constantly checks the installed webcam for a certain block pattern (seen in the screenshot). When it sees it, it places the items over the pattern. In other words, if you tilt and move the sheet of paper, the images move along with it. There is also a wand in the middle which the user can control with their hand. By holding another array (similar to the one in the shot, except using two blocks) the user is able to guide the wand to different objects, thus selecting them. Once selected, the user can manipulate the object through translations, rotations, and scales.

I created this program in C# (microsoft visual c# express 2008) using GoblinXNA, Columbia University's Graphical Interface library built on top of XNA game studio. For more info on GoblinXNA, go here:


Video Demo of project:
I apologize for the lame video. The poor quality... my fault. The sound lag... youtube's fault =)

Thursday, April 01, 2010

Grooveshark: Cool Music Resource


I did not make this, and this is not something that I can be proud of creating (as I mentioned in the first post) but I guess this blog will also promote things that I like and use often.

Grooveshark is a site that anybody can use to listen to music for free. It is located at:


and has a wide range of music. You can favorite songs, create playlists, friend users and see what they are listening to, etc etc. It reminds me of pandora, but I like it better because the music is not random. You can actually listen to what you want to. Give it a try.

My username is thablinksta if you would like to friend me.

Peace


Tech Blog

So I am sitting in a cafe editing a concert review. It sucks. All I want to do is work on my databases project.

This happens alot. I would rather work on my cs assignments than write a stupid paper. Then I start reminiscing about all of the things that I have done.

And then it dawns on me... why not make a tech blog!!!!!! Nothing serious, I am just documenting everything that I have done so that people who I want to see it (as well as people who are interested) can check it out.

Since this is a techblog, I will try not to be too wordy. I will try to keep it not-so-verbose and keep it nice and technical.

Anyway, I hope this is something that I can continue for years to come. This is all.