• Browser Pong

    Development and Coding programming pong game
    2
    4 Votes
    2 Posts
    912 Views
    AntuA
    I set the source public yesterday on Github and MDN in case anyone is interested in it. I’m going to take a break for the holidays, and start work on some new projects next year. See you.
  • Hebocon.

    The lounge
    3
    2 Votes
    3 Posts
    818 Views
    AntuA
    Wow that’s hilariously awesome ! I lost it at “Moving with the vibration of dildos” … what a robot. xD
  • Recent updates and changes.

    Announcements updates changes
    7
    1 Votes
    7 Posts
    1k Views
    AntuA
    @Scuzz It looks a lot better now, thanks !
  • Blog post for my internship

    Development and Coding internship blog
    1
    4 Votes
    1 Posts
    541 Views
    SchamperS
    My boss kept nagging me to make a short blog post about my internship project, so I did. Some of you might know that I’m having trouble getting feedback on my work, so I put in some comments about that in this post. Android application development I’ve been working on the Projectcampus Android application since September, and I must say I’ve learned a lot about Android and personally think the application is coming along nicely. ​​​It all started as a very simple list of hardcoded data, but gradually grew to make use of various Android components such as a Content Provider, Authenticator, Sync Adapter and even custom views. Besides these components I’ve learned about using various mainstream libraries such as Retrofit, OkHttp, Glide, Butterknife, Eventbus, Crashlytics and the Android Support Library. ​ Retrofit powers the REST communication with the Projectcampus backend in combination with EventBus. EventBus is exactly what it sounds like, an event bus. This makes it possible to launch a REST request from anywhere in the application and also to allow any part of the application to receive any REST response. EventBus is also used for other inner-application communication. Glide is an image loading and caching library used for the various images used throughout the application. All of the networking is backed by OkHttp.​ Butterknife is a view “injection” library for Android and is used to reduce the amount of boilerplate code. Crashlytics is used to report crashes and errors. The Android Support Library is used for a couple of things like Material support for API levels below 21, Toolbar and new Swipe Refresh Layout. ​ In the current structure, all REST request events are handled by a Retrofit client. This client posts all the results to the event bus. A database service listens to all the response events and writes these to the database through a content provider. Any fragment or activity subscribed to the affected URI’s will be automatically updated through the magic of cursor loaders. ​ I’ve also made sure to improve performance where I can. Making use of the View holder pattern, reducing layout XML complexity and depth and reducing overdraw are a few examples I can currently think of. I’m sure there are parts in my code that can be refactored to be more performant, but that’s hard to determine when you’re the only person looking at the code. ​ The application is also configurable at build time using gradle. There are several properties that can be set to configure the application, most important being the URLs and client ID for the API. There are also properties to disable certain features of the application. ​ All in all I’m fairly happy with the current state of the application. However, I also feel like it could be a lot better and further along if I had occasional feedback. A very large portion of my time has been spend redoing something I did the previous week. On the other hand, I’m also kind of proud of myself that I’ve managed to put together the application in its current state all by myself. [image: iqFWO8C.png]
  • Google Cardboard Unboxing & Review

    Tech unboxing review google cardboar
    4
    3 Votes
    4 Posts
    3k Views
    AlmostA
    Apparently Google is now taking Cardboard seriously again. Google updated their cardboard site, created a list of cardboard apps, and added a Unity SDK. All official as of today. Maybe I spoke too soon in saying this was not going to progress.
  • The years YouTube Rewind

    The lounge
    8
    1 Votes
    8 Posts
    816 Views
    S
    From the people listed at the end I knew 27 of them; I watch too much YT. Still a shitload I’ve never heard of.
  • HTC One problem - Intermittent no sound during call

    Tech htc one sound call
    5
    0 Votes
    5 Posts
    2k Views
    AlmostA
    Don’t worry. We’ve got that documented. [image: Image%202014-12-09%20at%206.28.31%20PM.png@500x] P.S. The story is backed up better than your phone! :P
  • The Witcher 3: The Wild Hunt - Delayed

    Gaming wticher wild hunt
    1
    0 Votes
    1 Posts
    452 Views
    ScuzzS
    News has just popped up from CD Projekt Red that The Witcher 3: The Wild Hunt has been delayed. This is one of the games that I am actually looking forward playing. The Witcher 2 was a pretty amazing game and my hopes are that The Witcher 3 will be too. I also like that they chose to delay the game rather than release a buggy unfinished game. "Dear Gamers, Ever since we started working on The Witcher 3: Wild Hunt, we knew it would be an ambitious game. We wanted, and still aim, to give you an incredible experience, an epic adventure in a vast, completely open fantasy universe. The sheer size and complexity of The Witcher, key features of the title, have had a decisive impact on production. Now, nearing the end of our work, we see many details that need to be corrected. When we release the most important game in our studio’s history, we must be absolutely sure that we did everything we could to limit any bugs to a level that will allow you to enjoy the game thoroughly. With this in mind, we took another look at current workloads and what they mean for the team. Even though everyone is working at full speed, we concluded that we need another 12 weeks, so we are shifting the release date of The Witcher 3: Wild Hunt to May 19th, 2015. We owe you an apology. We set the release date too hastily. It’s a hard lesson, one to take to heart for the future. We know what we want to do to make Wild Hunt one of the best RPGs you will ever play. And we continue to work hard to achieve just that. So, we apologize and ask for your trust. Thank you for the all support you show us on a daily basis. We truly do appreciate it. It has fueled us in our passion since the start and will continue to do so. The Board of CD PROJEKT SA" http://thewitcher.com/news/view/906
  • Uncharted 4: A Theif's End

    Gaming
    1
    0 Votes
    1 Posts
    423 Views
    ScuzzS
    Sony did a sneaky little teaser the other day Uncharted 4: A Theif’s End. Now they have released some gameplay. https://www.youtube.com/watch?v=Ow2cL-pp6p8 I really hope that this footage was from an actual PS4 and is close to the final product. With recent experiences with games such as Watchdogs and how they were quite different to their gameplay videos we can only hope that Naughty Dog don’t pull an Ubisoft. I have played all of the Uncharted games except the one on the Vita and I really enjoyed them. To bad I don’t have a PS4 though :( [image: kvxgnv.gif] Dat rope swing though
  • [Spoilers]Interstellar

    The lounge
    4
    1 Votes
    4 Posts
    767 Views
    ScuzzS
    @Almost I kinda had the same feeling about the robots when i first saw them but after you see them in action you can see that they kinda work. Weird design though. :heart: Tars. The planet was made up of frozen clouds. The surface was a lie. Dr Mann made up the surface of that planet and faked the data so that he would eventually get picked for having the “best” planet for building a new human colony. He then executed his plan to take their ship to another planet that actually had a chance of sustaining life. If his plan worked, he would have survived as well. He was pretty selfish. I’m pretty sure they said that it he was the best pilot for this mission and that he had been training for it most of his life. At the start when he has that nightmare. That was one of the test flights for the Lazarus missions but for some reason their was a gravitational anomaly, similar to the one in his house, that stopped him from completing the test. Also, when he is at the school speaking to Murph’s teachers they say that most of the engineers, pilots etc… are not needed any more because all the world needs at the moment are farmers. NASA was also disbanded but kept alive in secret. I’m not sure if they would have been able to train more pilots for the flight.
  • Interstellar

    The lounge
    8
    1 Votes
    8 Posts
    1k Views
    President_ChoobP
    All my concept artists friends wet themselves over the robot designs, and were trying to find the artist/designer responsible. Apparently though it was Nolan who came up with them, which makes me respect him a bit more. KitKat robots are even better than that Star Wars FIFAbot.
  • We love you Goany

    The lounge
    3
    3 Votes
    3 Posts
    610 Views
    GoaNyG
    I love you too
  • WIIIS (Nintendo Wii Image Search)

    Development and Coding image wii c++ search
    1
    0 Votes
    1 Posts
    496 Views
    ScuzzS
    WIIIS (Nintendo Wii Image Search) As computer games consoles become more and more like computers the need for forensic investigation methodologies and software also increases. Many new games console have hard drives that are able to store images, films and music on them and because of this they can be used to store illegal content. Games console can also be modified to run homebrew applications that give access to hidden areas of the storage of the games console, adding further hiding places for illegal files. This report describes different consoles and their method of modification and the implementation of an image carver for two games consoles. The Nintendo Wii Image Search will search for .jpg files stored on an external SD card and display their location on screen. WIIIS requires the homebrew channel to be installed on the Nintendo Wii console #include <iostream> #include <string> #include <vector> #include <gccore.h> #include <wiiuse/wpad.h> #include <fat.h> #include <dirent.h> using namespace std; static void *xfb = NULL; static GXRModeObj *rmode = NULL; void initVideo() { VIDEO_Init(); WPAD_Init(); rmode = VIDEO_GetPreferredMode(NULL); xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode)); console_init(xfb,20,20,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ); VIDEO_Configure(rmode); VIDEO_SetNextFramebuffer(xfb); VIDEO_SetBlack(FALSE); VIDEO_Flush(); VIDEO_WaitVSync(); if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync(); cout << "\x1b[2;0H"; } int initFat() { if(!fatInitDefault()) { cout << "Unable to initialise FAT, exiting.\n"; return 1; } DIR *dir; dir = opendir("/"); if(!dir) { cout << "Failed to open dir, exiting.\n"; return 1; } closedir(dir); return 0; } void searchDir(string &rootDir, vector<string> &files) { string filePath; DIR *dir; struct dirent *entry; struct stat statbuf; dir = opendir(rootDir.c_str()); while((entry=readdir(dir)) != 0) { stat(entry->d_name, &statbuf); if(entry->d_name[0] != '.') { filePath.erase(); filePath = rootDir + string(entry->d_name) + "/"; if(S_ISDIR(statbuf.st_mode)) { searchDir(filePath, files); } if(string(entry->d_name).length() > 3) { if(string(entry->d_name).substr(string(entry->d_name).length() - 3, 3) == "jpg") { files.push_back(filePath.substr(0, filePath.size() - 1)); } } } } closedir(dir); } int main(int argc, char **argv) { vector<string> files; initVideo(); initFat(); string rootDir = "/"; cout << "Wii Image Search, press A to start or Home to quit.\n"; while(1) { WPAD_ScanPads(); u32 pressed = WPAD_ButtonsDown(0); if(pressed & WPAD_BUTTON_HOME) { return 0; } if(pressed & WPAD_BUTTON_A) { searchDir(rootDir, files); for(std::vector<string>::const_iterator i = files.begin(); i != files.end(); ++i) { cout << *i << "\n"; } } VIDEO_WaitVSync(); } return 0; }
  • Some Encryption program in Python

    Development and Coding python enryption
    1
    1 Votes
    1 Posts
    846 Views
    ScuzzS
    Encryption program for a university module Usage: python joshcrypt.py [-h] [-e] [-d] keyword inputFile outputFile Flags: [-h] Help. This flag will generate help from the command line. [-e] Encrypt. Use this flag to encrypt the inputFile. [-d] Decrypt. Use this flag to decrypt the inputFile. Arguments: Keyword - The keyword used to encrypt the file. inputFile - The Filename to save the encrypted/decrypted file as. This program needs to be run from the command line; cmd.exe or any terminal emulator will suffice. To start the encryption process a user must type: python joshcrypt.py -e "keyword" "inputfile" "outputfile" Keyword is the password used for the document. Inputfile is the file that you want to be encrypted. Outputfile is the file that you want the encrypted file to be saved as. To start the decryption process a user must type: python joshcrypt.py -d "keyword" "inputfile" "outputfile" Keyword is the password used for the document. Inputfile is the file that you want to be decrypted. Outputfile is the file that you want the plain text file to be saved as. # Requires Python 2.7 as Python 3.0+ contains bugs with the array.array() function. import argparse import array import sys # Opens file as a byte array. def getBlock(fileName): f = open(fileName, "rb") blockArray = array.array('b', f.read()) f.close return blockArray # Converts bytes to string and writes it to a file. def writeBlocks(blocks, fileName): f = open(fileName, "wb") string = blocks.tostring() f.write(blocks) f.close() # Generates a key. # Converts the key into a byte array, creates another byte array of the key but reversed. # Xor the bytes together to generate the final key. def genKey(key): a = array.array('b', key) b = a[::-1] for x in range(len(a)): a[x] = a[x] ^ b[x] return a # Xor the bytes of the key with the bytes of the file. # Loops through the key and adds the times it has looped to the end of the key def encrypt(blocks, key): i = 0 r = 0 for block in range(len(blocks)): blocks[block] = blocks[block] ^ key[i] if i == len(key) - 1: i = 0 r += 1 key = genKey(key.tostring() + str(r)) else: i += 1 return blocks def decrypt(blocks, key): i = 0 r = 0 for block in range(len(blocks)): blocks[block] = blocks[block] ^ key[i] if i == len(key) - 1: i = 0 r += 1 key = genKey(key.tostring() + str(r)) else: i += 1 return blocks # Sets up the command line arguments # Calls functions to encrypt the file. def main(): parser = argparse.ArgumentParser(description="Encrypt and Decrypt a file.") parser.add_argument("-e", action = "store_true", default = False, dest = "edFlag", help = "Encrypt File") parser.add_argument("-d", action = "store_false", default = False, dest = "edFlag", help = "Decrypt File") parser.add_argument("keyword", action = "store", help = "Keyword used to encrypt or decrypt file") parser.add_argument("inputFile", action = "store", help = "Filename to be encrypted/decrypted") parser.add_argument("outputFile", action = "store", help = "Filename to save the encrypted/decrypted file as") args = parser.parse_args() if len(args.keyword) < 10 or len(args.keyword) > 40: print "Password needs to be greater than 10 characters and less than 40" sys.exit(1) if args.edFlag: print "ENCRYPTING" key = genKey(args.keyword) blocks = getBlock(args.inputFile) encrypted = encrypt(blocks, key) writeBlocks(encrypted, args.outputFile) else: print "DECRYPTING" key = genKey(args.keyword) blocks = getBlock(args.inputFile) decrypted = decrypt(blocks, key) writeBlocks(decrypted, args.outputFile) if __name__ == '__main__': main()```
  • PS3 Image Searcher (C++)

    Development and Coding ps3 image search c++
    1
    1 Votes
    1 Posts
    470 Views
    ScuzzS
    Here is a project I did for my final year at uni. It is a homebrew program for the PS3 that will let you search for images files on the HDD and then transfer them to USB. It’s probably buggy as hell and it only searches for file extension and the copy function is stupidly slow but it did work. It’s coded in C++ with some graphic library i found for the PS3. I can’t remember what it is. #include <NoRSX.h> #include <sys/stat.h> #include <sys/file.h> #include <fstream> #include <iostream> #include <string.h> #include <vector> #include <sysmodule/sysmodule.h> #include <io/pad.h> using namespace std; static NoRSX *GFX; string detectUSB() { int fd; string USB = ""; int usbNum = 0; char path [256]; for(usbNum = 0; usbNum < 11; usbNum++) { sprintf(path, "/dev_usb00%d/", usbNum); if(sysLv2FsOpenDir(path, &fd) == 0) { USB = string(path); } } return USB; } void searchDir(string rootDir, vector<string> &fileNames) { sysFSDirent entry; s32 fd; u64 read; string filePath; if(sysLv2FsOpenDir(rootDir.c_str(), &fd) == 0) { sysLv2FsOpenDir(rootDir.c_str(), &fd); while(!sysLv2FsReadDir(fd,&entry,&read) && strlen(entry.d_name)>0) { if(entry.d_name[0] != '.') { if(entry.d_type == 0x01) { GFX->Flip(); filePath.erase(); filePath = rootDir + string(entry.d_name) + "/"; searchDir(filePath, fileNames); } else { if(string(entry.d_name).substr(string(entry.d_name).length() - 3, 3) == "jpg") { fileNames.push_back(rootDir.substr(0, rootDir.size()) + string(entry.d_name)); } } } } sysLv2FsCloseDir(fd); } } void copyFiles(string destDir, vector<string> files) { string destFilePath = ""; string origFilePath = ""; for(std::vector<string>::const_iterator i = files.begin(); i != files.end(); i++) { origFilePath = *i; destFilePath = destDir + origFilePath.substr(origFilePath.find_last_of("/") + 1); ifstream origFile(origFilePath.c_str()); ofstream destFile(destFilePath.c_str()); destFile << origFile.rdbuf(); } } s32 main(s32 argc, const char* argv[]) { padInfo padinfo; padData paddata; ioPadInit(7); GFX = new NoRSX(); Font F(JPN, GFX); Bitmap BMap(GFX); NoRSX_Bitmap Precalculated_Layer; BMap.GenerateBitmap(&Precalculated_Layer); vector<string> files; int debug = 0; string USBStatus = ""; string HDDStatus = ""; string USBFiles = ""; string HDDFiles = ""; string test = ""; int ImagesFound = 160; F.PrintfToBitmap(100,80,&Precalculated_Layer,COLOR_RED,15,"PS3 Image Search, Press X to start or START to quit"); GFX->AppStart(); while(GFX->GetAppStatus()) { ioPadGetInfo(&padinfo); for(int i = 0; i < MAX_PORT_NUM; i++) { if(padinfo.status[i]) { ioPadGetData(i, &paddata); if(paddata.BTN_START) { GFX->AppExit(); } if(paddata.BTN_CROSS) { HDDStatus = "/dev_hdd0/Forensic/"; searchDir("/dev_hdd0/Forensic/", files); for(std::vector<string>::const_iterator i = files.begin(); i != files.end(); ++i) { BMap.DrawBitmap(&Precalculated_Layer); HDDFiles = "File: " + *i; F.PrintfToBitmap(600,ImagesFound,&Precalculated_Layer,COLOR_WHITE,15,"HDD Files: %s", HDDFiles.c_str()); GFX->Flip(); ImagesFound = ImagesFound + 20; } USBStatus = "No USB"; USBFiles = ""; if(detectUSB() != "") { USBStatus = detectUSB(); copyFiles(USBStatus, files); } } } } BMap.DrawBitmap(&Precalculated_Layer); F.Printf(100,100,COLOR_WHITE,15,"USB Status: %s", USBStatus.c_str()); F.Printf(100,120,COLOR_WHITE,15,"USB Files: %s", USBFiles.c_str()); F.Printf(100,140,COLOR_WHITE,15,"HDD Status: %s", HDDStatus.c_str()); F.Printf(100,160,COLOR_WHITE,15,"HDD Files: %s", HDDFiles.c_str()); F.Printf(100,180,COLOR_WHITE,15,"Images Found: %d", ImagesFound); F.Printf(100,200,COLOR_RED,15,"DEBUG: %d", debug); GFX->Flip(); debug++; } BMap.ClearBitmap(&Precalculated_Layer); GFX->NoRSX_Exit(); ioPadEnd(); return 0; }
  • Google Inbox Invite Giveaway!

    General Computing google inbox invite giveaway
    11
    2 Votes
    11 Posts
    2k Views
    ScuzzS
    I have 5 more to giveaway!
  • Free stuff

    Gaming
    7
    1 Votes
    7 Posts
    1k Views
    LeoL
    @Schamper batmans pls
  • Over The Garden Wall

    The lounge
    1
    1 Votes
    1 Posts
    610 Views
    AlmostA
    [image: Over_the_Garden_Wall_poster.jpg] For those of you who don’t know (presumably all of you), Over The Garden Wall is a animated short series (10 episodes, 15 minutes each) that aired on Cartoon Network this past week. The story is of a young Teenager named Wirt (voiced by Elijah Wood) and his kid brother Greg. The two find themselves lost in The Unknown - a mysterious forrest full of mystical things - with no explanation of how they got their but searching for a way home. As they make their way through the forrest, they encounter many fantasy mini-stories that constantly subvert your expectations. But as they wander, darkness is close behind and they must work fast to escape the Unknown and return to their home. The series has a wonderful mixture of beautiful scenery, derpy character design, dumb comedy, and fantastic pre-twentieth century music, and it all meshes so well. The scenery makes it feel like an old ghost story: a fantasy forrest full of sepia tones, creepy shadows, and broken down houses. The characters stand out in their relative simpleness; their features are blocky, derpy, and charming. You may know the creator, Patrick McHale, for Adventure Time - some of the same stupid, blunt, unexpected humor pops up here. And finally, the music. The Petrojvic Blasting Company (or at least members of) put together an amazing mix of gypsy music and new orleans style jazz to make a sinister, uplifting, old-timey score. It really adds to that old ghost story feel. Overall, if you like cartoons even a little, this is definitely worth your time. At $10 for HD on google play, amazon, and itunes, it’s easy to get ahold of. Petrojvic Blasting Company also has their own album for sale through bandcamp where you can name your old price! If you’re like me and love music, this is a no-brainer. I like this show enough that if some a few of you are on the fence about it, I’d buy it for you. Same goes for the music. The Petrojvic Blasting Company are great and will send you a personal thank you if you leave them a nice comment. Let me know what you guys think! [image: overthegardenwall-580x326.jpg] [image: Image%202014-11-08%20at%2012.29.17%20AM.png@500x] [image: Image%202014-11-08%20at%2012.30.13%20AM.png@500x] [image: Image%202014-11-08%20at%2012.31.50%20AM.png@500x]
  • nodebb-plugin-butt

    Development and Coding nodebb plugin
    1
    2 Votes
    1 Posts
    618 Views
    SchamperS
    About In protest of the removal of all my contest entries I have made a new plugin! I’m sure you are familiar with the cloud -> butt extensions for basically all major browsers out there… Well now there’s a NodeBB plugin for it as well! Bonus: you can even customize what words to change to butt in the ACP! Installation npm install nodebb-plugin-butt Source Github
  • NodeBB Hiccups

    Development and Coding nodebb hiccup
    4
    0 Votes
    4 Posts
    982 Views
    SchamperS
    Btw npm link still works fine.