Welcome to www.superarts.org!

  • Diablo 3 - Reaper of Souls Crafting Materials
    Source: http://www.diablofans.com/forums/diablo-iii-general-forums/diablo-iii-general-discussion/83094-guide-legendary-crafting-materials-drop-locations

    Top Tier Materials (only BIS legendaries and class sets beat them)

     Born's Key
    • Acquired from: Act I, Cemetery of the Forsaken, Lucious the Depraved (Rare spawn Brigand)
    • Act I, Defiled Crypt, Digger O'Dell (Rare spawn Ghastly Gravedigger), Bounty: Kill Digg O'Dell
      Act I, Defiled Crypt, Dataminer (Rare spawn Ghastly Gravedigger), Bounty: Kill the Dataminer
      Act I, Defiled Crypt, John Gorham Coffin (Rare spawn Ghastly Gravedigger)
      Act I, Defiled Crypt, Drury Brown (Rare spawn Ghastly Gravedigger)
    • Where to farm: Act I, Cemetery of the Forsaken and Crypts
    • Used for: Born's Frozen Soul, Chest, 6 random magic properties
    • Born's Furious Wrath, 1h Sword, +(981–1199)–(1175–1490) Holy Damage, 5 random magic properties
      Born's Privilege, Shoulders, 6 random magic properties
    • Set bonus Born's Command: (2): +15% Life, (3): Reduces cooldown of all skills by 10.0%, Increases Bonus Experience by 20%
     Essence of the Twin Seas
    • Acquired from: Act II, Black Canyon Mines, Razormouth (Rare spawn Dune Thresher), Bounty: Kill Razormouth
    • Act II, Stinging Winds, Monstrous Dune Thresher (Rare spawn Dune Thresher)
      Act II, Sewers of Caldeum, Moontooth Dreadshark (Rare spawn Dune Thresher, appears from some rubble)
    • Where to farm: Act II, Sewers of Caldeum (Moontooth Dreadshark appears from some rubble in a daed end pointing north east, requiring to walk into it before you see him)
    • Used for: Captain Crimson's Silk Girdle, Waist, 6 random magic properties
    • Captain Crimson's Thrust, Legs, 6 random magic properties
      Captain Crimson's Waders, Feet, 6 random magic properties
    • Set bonus Captain Crimson's Trimmings: (2): Regenerates 2000 Life per Second, Reduces cooldown of all skills by 10.0%, (3): +50 Resistance to All Elements, Reduces all resource costs by 10%
     Frozen Blood
    • Acquired from: Act III, Caverns of Frost, Chiltara (Rare spawn Lacuni Huntress)
    • Where to farm: Campaign Mode, Act III, Caverns of Frost
    • Used for: Utar's Roar, 1h Axe, +(981–1199)–(1175–1490) Cold Damage, Cold skills deal 15–20% more damage, 4 random magic properties
     Hilt of the Silver Wolf
    • Acquired from: Act III, Arreat Crater Level 1, Growlfang (Rare spawn Fallen Hound), Bounty: Kill Growlfang
    • Act III, Tower of the Damned Level 1, Gnawbone (Rare spawn Fallen Hound)
    • Where to farm: Act III, Arreat Crater Level 1
    • Used for: Golden Scourge, 1h Flail, +(981–1199)–(1175–1490) Holy Damage, Holy skills deal 15–20% more damage, Smite now jumps to 3 additional enemies, 3 random magic properties
     Iron Wolves Doctrine
    • Acquired from: Act II, Caldeum Sewers, Ningish (Rare spawn Deceiver Magi)
    • Act II, Dahlgur Oasis, Ssthrass (Common spawn Deceiver Magi)
    • Where to farm: Act II, Dahlgur Oasis, Quest Blood and Sand (Waterlogged Passage), Take the waypoint to Dhalguhr Oasis, go to the far north of the map and kill Ssthrass, enter the Ancient Waterway and leave the game, restart the game, take the portal from town, leave the Ancient Waterway again and kill Ssthrass right outside, repeat.
    • Used for: Asheara's Custodian, Shoulders, 6 random magic properties
    • Asheara's Finders, Feet, 6 random magic properties
      Asheara's Pace, Legs, 6 random magic properties
      Asheara's Ward, Hands, 6 random magic properties
    • Set bonus Asheara's Vestments: (2): +100 Resistance to All Elements, (3): +20% Life, (4): Attacks cause your followers to occasionally come to your aid.
     Shard of Entsteig Plate
    • Acquired from: Act I, Defiled Crypt, The Matriarch's Bones Event, Lord Dunhyld (Event spawn Enraged Phantom), Bounty: The Matriarch's Bones
    • Act I, The Festering Woods, Feklar's Ghost (Rare spawn Enraged Phantom), Bounty: Kill Feklar's Ghost
      Act I, The Festering Woods, Hawthorne Gable (Rare spawn Enraged Phantom), Bounty: Kill Hawthorne Gable
      Act II, Sewers of Caldeum, Shade of Nar Gulle (Rare spawn Enraged Phantom)
      Act II, Sewers of Caldeum, Chiman's Curse Chest mini Event, Raziel (Event spawn Enraged Phantom)
      Act II, Unknown Dephts, The Archivist (Event spawn Enraged Phantom), Bounty: Kill The Archivist
      Act II, Tomb of Khan Dakab, Spirit of Khan Dakab (Event spawn Enraged Phantom), Bounty: Spirit of Khan Dakab
      Act II, Realm of Shadow, The Tomekeeper (Rare spawn Enraged Phantom), Bounty: Kill the Tomekeeper
    • Where to farm: Act I, The Festering Woods
    • Used for: Aughild's Power, Shoulders, 6 random magic properties
    • Aughild's Rule, Torso, 6 random magic properties
      Aughild's Search, Wrists, 6 random magic properties
      Aughild's Spike, Head, +91–100 Resistance to All Elements, 5 random magic properties
    • Set Bonus Aughild's Authority: (2): Reduces damage from ranged attacks by 7.0%, Reduces damage from melee attacks by 7.0%, (3): Reduces damage from elites by 15.0%, Increases damage against elites by 15%
     Shattered Core
    • Acquired from: Act II, Desolate Sands, Ancient Device Event, Ernutet (Event spawn Sand Dweller)
    • Act II, Forgotten Ruins, Ancient Guardian (Rare spawn Sand Dweller)
      Act II, Unknown Depths, Rockgut (Rare spawn Sand Dweller), Bounty: Kill Rockgut
      Act II, Realm of Shadow, Thrum (Rare spawn Sand Dweller), Bounty: Kill Thrum
    • Where to farm: Act II, Realm of Shadow
    • Used for: Devastator, 1h Mace, +(981–1199)–(1175–1490) Fire Damage, Fire skills deal 15–20% more damage, 4 random magic properties

    Second Tier Materials (sort of useful but I wouldn't use them if I have any other options)

     Angelic Shard
    • Acquired from: Act IV, The Great Span, Izual (Quest spawn Corrupted Angel), Bounty: Kill Izual
    • Act IV, The Silver Spire Level 1, Pyres the Damned (Rare spawn Corrupted Angel), Bounty: Kill Pyres the Damned
      Act V, Battlefields of Eternity, Erelus (Event spawn Corrupted Angel)
      Act V, Realm of the Banished (Realmwalker Portal in Battlefields of Eternity), Haziael (Rare spawn Corrupted Angel), Bounty: Kill Haziael
      Act V, Pandemonium Fortress Level 2, Celik (Rare spawn)
    • Where to farm: Act IV, The Great Span, Izual
    • Used for: Hallowed Barricade, Shield, Holy skills deal 15–20% more damage, 5 random magic properties
    • Hallowed Baton, Wand, +(981–1199)–(1175–1490) Holy Damage, 5 random magic properties
      Hallowed Breach, 1h Axe, +(981–1199)–(1175–1490) Holy Damage, 5 random magic properties
      Hallowed Condemnation, Hand Crossbow, +(858–1049)–(1028–1304) Holy Damage, 5 random magic properties
      Hallowed Hold, Fist Weapon, +(981–1199)–(1175–1490) Holy Damage, 5 random magic properties
      Hallowed Nemesis, 1h Mighty Weapon, +(981–1199)–(1175–1490) Holy Damage, 5 random magic properties
      Hallowed Sufferance, Ceremonial Knife, +(1098–1316)–(1644–1959) Holy Damage, 5 random magic properties
    • Set bonus Hallowed Protectors: (2): +100 Resistance to All Elements, Attack Speed Increased by 10.0%
     Defiled Doll
    • Acquired from: Act III, Tower of the Damned Level 1, Demonika the Wicked (Rare spawn Succubus), Bounty: Kill Demonika the Wicked
    • Act IV, The Silver Spire Level 1, Kysindra the Wretched (Rare spawn Succubus), Bounty: Kill Kysindra the Wretched
      Act V, House of Deep Sorrow (Westmarch Commons), Lady Victoria (Event spawn Succubus)
    • Where to farm: Testing needed.
    • Used for: Spite, Mojo, +(279–348)–(280–418) Damage, Critical Hit Chance Increased by 8.0–10.0%, +120–150 Maximum Mana (Witch Doctor Only), 4 random magic properties
     Demon Skin
    • Acquired from: Act III, The Core of Arreat, Axgore the Cleaver (Rare spawn Phase Beast), Bounty: Kill Axgore the Cleaver
    • Act III, Tower of the Damned Level 1, Haxxor (Rare spawn Phase Beast), Bounty: Kill Haxxor
      Act IV, Gardens of Hope Tier 1, Khatun (Rare Spawn Sky Terror), Bounty: Kill Khatun
      Act IV, Gardens of Hope Tier 2, Razorclaw (Quest spawn Sky Terror, spawns during quest The Light of Hope)
    • Where to farm: Act IV, Quest The Light of Hope, Gardens of Hope Tier 2 (near portal to The Crystal Colonnade, do NOT go through the portal before remaking the game.)
    • Used for: Demon's Aileron, Shoulders, 6 random magic properties
    • Demon's Animus, Wrists, 6 random magic properties
      Demon's Marrow, Torso, 6 random magic properties
      Demon's Plate, Legs, 6 random magic properties
      Demon's Restraint, Waist, 6 random magic properties
    • Set bonus Demon's Hide: (2): Ranged and melee attackers take 6000 Fire damage per hit, (3): Chance to Deal 25% Area Damage on Hit, (4): +15% Damage to Demons, Chance to reflect projectiles when you are hit by enemies.
     Glowing Ore
    • Acquired from: Act V, Battlefields of Eternity, Sartor (Rare spawn Primordial Scavenger), Bounty: Kill Sartor
    • Act V, Realm of the Banished, Magrethar (Rare spawn Primordial Scavenger), Bounty: Kill Magrethar
      Act V, Realm of the Banished, Rockulus (Rare spawn Primordial Scavenger)
      Act V, Pandemonium Fortress, Demon Souls Event, Soul Scavenger (Event spawn Primordial Scavenger), Bounty: Demon Souls
    • Where to farm: Act V, Battlefields of Eternity
    • Used for: Cosmic Strand, Source, Teleport gains the effect of the Wormhole rune, 5 random magic properties
     Maghda's Tormented Soul
    • Acquired from: Act II, Lair of the Witch, Maghda, Bounty: Kill Maghda
    • Where to farm: Act II, Lair of the Witch (Alcarnus), Maghda
    • Used for: Cain's Habit, Legs, 6 random magic properties
    • Cain's Insight, Head, 6 random magic properties
      Cain's Scrivener, Hands, 6 random magic properties
      Cain's Travelers, Feet, 6 random magic properties
    • Set bonus Cain's Destiny: (2): Attack Speed Increased by 8.0%, (3): 50% Better Chance of Finding Magical Items, Increases Bonus Experience by 50%
     Mystical Source
    • Acquired from: Act I, Whimsyshire, Midnight Sparkle (Rare spawn Purple Pony)
    • Act I, Whimsyshire, Nightmarity (Rare spawn Purple Pony)
      Act I, Whimsyshire, Team Unicorn (3 tiny rare spawn Purple Ponies, (each has a chance to drop the item))
      Act I, Whimsyshire, Creampuff (Rare spawn Purple Pony)
    • Where to farm: Act I, Whimsyshire (aka Pony Level)
    • Used for: Sage's Apogee, Head, Empty Socket, 5 random magic properties
    • Sage's Passage, Feet, 6 random magic properties
      Sage's Purchase, Hands, 6 random magic properties
    • Set Bonus Sage's Journey: (2): +250 Strength, +250 Dexterity, +250 Intelligence, +250 Vitality, (3): Whenever a Death's Breath drops, a second one will also drop.
     Reaper's Fear
    • Acquired from: Act V, Heart of the Fortress, Malthael, Bounty: Kill Malthael
    • Where to farm: Act V, Heart of the Fortress
    • Used for: Reaper's Wraps, Wrists, Health globes restore 25–30% of your primary resource, 5 random magic properties (as opposed to the 8 properties according to Battle.net)
    • Note: Malthael also drops the Recipe for Reaper's Wraps.
     Shuddering Demon Bone
    • Acquired from: Act IV, Gardens of Hope 2nd Tier, Kao'Ahn (Rare spawn Morlu), Bounty: Kill Kao'Ahn
    • Act IV, Gardens of Hope 2nd Tier, Oah'Tash (Rare spawn Morlu), Bounty: Kill Oah'Tash
    • Where to farm: Act IV, Gardens of Hope 2nd Tier
    • Used for: Archfiend Arrows, Quiver, Attack Speed Increased by 15.0–20.0%, Critical Hit Chance Increased by 8.0–10.0%, Increases damage against elites by 5–8%, 4 random magic properties
     Symbol of the Guardian Brotherhood
    • Acquired from: Act III, Skycrown Battlements, Thromp the Breaker (Rare spawn Demon Trooper), Bounty: Kill Thromp the Breaker
    • Act III, Stonefort, Bashface the Truncheon (Rare spawn Demon Trooper), Bounty: Kill Bashface the Truncheon
      Act III, Stonefort, Waiting for Reinforcements Event, Dragus (Event/Quest spawn Demon Trooper, spawns during Quest Turning the Tide)
      Act III, Stonefort, Bricktop (Rare spawn Demon Trooper), Bounty: Kill Bricktop
      Act III, The Keep Depths Level 2, The Crusher (Rare spawn Demon Trooper), Bounty: Kill the Crusher
      Act III, Rakkis Crossing, Crazy Climber Event, Busaw (Event spawn Demon Trooper)
    • Where to farm: Adevnture Mode, Act III, Stonefort, Dragus (not far from the entrance)
    • Used for: Guardian's Aversion, Wrists, 6 random magic properties
    • Guardian's Case, Waist, 6 random magic properties
      Guardian's Gaze, Head, +10–12% Movement Speed, 5 random magic properties
    • Set Bonus Guardian's Jeopardy: (2): +250 Vitality, Regenerates 2000 Life per Second, (3): +15% Movement Speed
     Woven Plate
    • Acquired from: Act I, Cathedral Level 4, Captain Cage (Rare spawn Skeletal Shieldbearer), Bounty: Kill Captain Cage
    • Act I, Festering Woods, The Last Stand of the Ancients Event, Enmerkar (Event spawn Skeletal Shieldbearer), Bounty: Last STand of the Ancients
      Act III, The Keep Depths Level 1, Captain Donn Adams (Rare spawn Skeletal Shieldbearer), Bounty: Kill Captain Donn Adams
    • Where to farm: Act I, Festering Woods, The Last Stand of the Ancients Event
    • Used for: Piro Marella, Crusader Shield, Reduces the Wrath cost of Shield Bash by 40–50%, 5 random magic properties
    Posted Apr 19, 2014, 6:39 AM by Leo - www.superarts.org -
  • Google Gone Evil... Finally
    I used to respect Google. Even Steve Jobs said it's "bullshit", Google has still been way less eviler than Apple obviously, so Steve's speech could be take as some kind of jealousy - until recently, Google decided to ban the users not using real name from using Plus, Buzz, and reader. It's improper because:

    1. Any internet service providers, SHOULD NOT change their policy because of they have gained a huge user base, so that they can do it "safely". Yes, it is legal, but it's evil definitely. For example, I've been using Google Reader for years, and suddenly my profile was banned and I can't share anything anymore. If Google apply this to Plus it's fine, because it's a new SNS which is even in beta. To Buzz it may be OK, because it's fairly new (although I may have doubt about that, but) to an old service like reader, it's very rude for Google to change their policy. The question about whether a user should provide his real name to share some articles is another thing, I'm just saying that, no service provider should make such a big change suddenly, and....

    2. Without any options,noticing, or even some basic hint. All you will see is something like "cannot share you post now... please try again later". This is VERY misleading and fraud. It's not the law, but most people see this they will consider it's kind of server downtime, internet problem, etc. By reading all this, who is able to know that it's "your profile has been suspended"? Not me. I tried a lot of thing to ensure Google works well for my connection, and finally I Googled it myself. I don't know what Google thinks; maybe it feels like if things are not going well, they can revert everything and pretend nothing happened? Or it's too risky to inform a lot of users that they cannot use their profile at the same time? Nonetheless, you can't even share something with your online friends with your online ID, that's all Google's up to. so...

    3. Everyone should have their rights to be anonymous online. It's not about hacking or cracking or something, it's about the nature of our society: if something is not enforced by law, you can do it. Some people may be keeping anonymous for bad reason, but way more people do this for good reason, like protecting themselves, etc. If you were in China, you must not do anything that looks "suspicious" to the government, but we're in the free world. Everybody's choice should be respect. Well of course Google also has its rights to ban user without real name, and that's protected by the law, but at the same time Google wants to use this right, it became evil. Finally.

    Google is already so big and so successful that your "protesting" against it will be in vain, like you protest Microsoft for being a douche bag, or Apple for being an evil cult or something. And it's never been hard for anyone to choose a fake "real name" like John Doe or Jim Smith. But all these don't effect one thing: the once noble search giant has fallen because it's lust to beat facebook. "You don't have to be evil to make money", but yea, if you're it's much more easier for you to make money. Google finally stopped resisting it.

    What a shame to the whole world.
    Posted Jul 22, 2011, 10:05 PM by Leo - www.superarts.org -
  • Post json in appengine-rest-server
    Content-Type: application/json
    With body:
        "list": {
            "gdb_model": [{
                "value": "123",
                "dbname": "database-test",
                "id": "004",
                "name": "latitude"
            }, {
                "value": "-45",
                "dbname": "database-test",
                "id": "004",
                "name": "longitude"
    Posted Jul 17, 2011, 3:02 AM by Leo - www.superarts.org -
  • Some Tricky Codes to Bind UISwitch with NSUserDefaults Settings
    Since iOS does not have NSDefaults binding (official document: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaBindings/Concepts/NSUserDefaultsController.html), if we want it we have to write some codes ourselves. Of course, there should be tons of ways of doing this, and I'll share some codes which in my opinion are quite interesting.

    First, in an NSString category, write something like this for codes like [@"setting-enabled" setting_set_switch:my_switch]:

    546 //  setting + ui
    548 - (void)setting_set_switch:(UISwitch*)a_switch
    549 {
    550     a_switch.on = [self setting_bool];
    551 }
    553 - (void)setting_get_switch:(UISwitch*)a_switch
    554 {
    555     [self setting_bool:a_switch.on];
    556 }

    Then in an NSObject category, these codes are for "fake instance variables" (got the idea from here: http://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with-associative-references/):

     48 #pragma mark associate
     50 - (void)associate:(NSString*)key with:(id)obj
     51 {
     52     objc_setAssociatedObject(self, key, obj, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
     53 }
     55 - (id)associated:(NSString*)key
     56 {
     57     return objc_getAssociatedObject(self, key);
     58 }

    Finally, add our own UISwitch Category:

     39 #pragma mark LYSwitch
     41 @interface UISwitch (LYSwitch)
     42 - (void)bind_setting:(NSString*)key;
     43 @end
     45 @implementation UISwitch (LYSwitch)
     46 - (void)bind_setting:(NSString*)key
     47 {
     48     [key setting_set_switch:self];
     49     [self associate:@"ly-setting-name" with:key];
     50     [self addTarget:self action:@selector(value_changed) forControlEvents:UIControlEventValueChanged];
     51 }
     52 - (void)value_changed
     53 {
     54     [[self associated:@"ly-setting-name"] setting_bool:self.on];
     55 }
     56 @end

    How to use:

    In the init routine, simply set binding info:

     17     [switch_setting_shuffle bind_setting:@"setting-player-shuffle"];
     18     [switch_setting_repeat bind_setting:@"setting-player-repeat"];

    So the settings are binded with the UISwitches:

    623 - (IBAction)action_setting_changed
    624 {
    625     NSLog(@"setting shuffle: %i", switch_setting_shuffle.on);
    626     NSLog(@"setting repeat: %i", switch_setting_repeat.on);
    627 }

    To be continued: you can use code like this to bind all the UIControls. Quite funny codes, huh?
    Posted May 25, 2011, 8:09 PM by Leo - www.superarts.org -
  • An Idea about the Libraryhack Event

    From here: http://libraryhack.org/ideas/

    This idea is called "This Place in History", which let user check the photos taken near them, and even the old map of that area (if available). It can be used for either a mobile app or a web site, but mobile apps for devices like iPhone, iPad, or Android phones/pads are preferred, due to the nature of the touch-based gestures and the ability to determine user's current location.

    To use this app, the user firstly agrees it to use his current location, and a map will be displayed based on this location. User is able to use either gesture or buttons/scrollbars to navigate and zoom in/out. There's a long bar called "timeline", which has 2 points on it, one is "starting year" and the other is "ending year". By selecting these 2 points, photos captured between these 2 years will be shown as thumbnails on the map based on the place they've been taken, and user can click them to see the full picture and related information like author, description, date, etc. User can save the picture, share them on facebook, twitter, or by email. User can also navigate to previous / next pictures, sorting by either time or distance.

    If the old map of the current displayed place is available, there will be a scroll bar to let the map face into the past map, or the present map (that is, map or satellite image or hybrid mode). Alpha transparent effect can be used so that the old and current maps can be mixed together, with proper visual effect.

    I understand that some old photos may not have geodetic information. In this case, keywords can be used to determine their positions. About map, or geodetic info is not available, additional efforts will be needed to implement the features described above.

    Social networking can also be added, like making friends with people who are near you and are interested in the same history time / places / photos. People can leave comments on a certain photo. Of course, this will make things much more complex and may not be provided in the first release of the app.

    Posted Apr 29, 2011, 4:31 AM by Leo - www.superarts.org -
  • Ever Heard about Jessica Patuzzo?
    This kind of things are almost too many in China, so... No need to mention indeed (if you know what I'm talking about).
    Posted Mar 23, 2011, 9:45 AM by Leo - www.superarts.org -
  • Promoting Our iOS Solutions
    Super Art Soft is now offering various kinds of inexpensive iPhone / iPad business solutions. If you're interested in build your own apps to promote your business, please contact superartsoft·gmail·com.
    Posted Mar 16, 2011, 7:15 AM by Leo - www.superarts.org -
  • Geohot Needs Your Help
    Update: Geohot settled with Sony and promised never touch Sony's products again. If he wasn't asking for donation it would be OK, but people may consider his act as some kinds of fraud since he said he would see Sony offer a homebrew opportunity to everyone. Anyway, personally I think it's a big loss. Can't say shame on Geohot but this isn't a good thing for every single person except for Sony.

    You can visit http://www.geohot.com/ for further information, and I've copied all the texts down here in case he changes the homepage later. Anyway, though my first thought of this was "definitely I'm going to support him although his look isn't pleasant to a lot of people including me", after a while I started questioning myself: why I SHOULD support a hacker? As an iOS developer myself, definitely it's against my interests to allow "root" or "jailbreak" a device that I'm working on. There can be several reasons, like big cooperation hatred, not a PS developer but a PS3 owner myself, etc. but they are not strong enough for me to justify myself. 

    But maybe combining them may be. Doing technical study and suddenly sued by big cooperation and facing bankrupt. Running homebrew and got banned. Terrific things like these can definitely break one's peaceful life, and these things should not happen. That may be what I've been believing.

    Besides, if we still can't open source everything, at least we SHOULD make everything as open as possible. Shouldn't we? 

    Donations here are for legal defense ONLY
    I checked with my lawyers before setting this up
    If you have another substantial way to donate aside from money, let me know

    Sony is lame, and is suing me for hacking MY OWN PS3. Help me own them in court

    Sony are bullies
    Sony doesn't care if what you did was legal, if they don't like it, they sue. Sony tried to sue a guy for getting his AIBO to do non Sony approved tricks, making it apparent that they don't really care about piracy, they care about control. In (Sony v Bleem), Bleem was the winner on all counts, but the high cost of a legal defense shut them down. Fortunately, that suit helped set precedent on the legality of emulators. I would hate to lose this case due to resource starvation, and with the support of the masses, I won't. Lets turn the bully back on itself. This case has the ability to set a huge precedent for consoles and all closed systems to come. The other two should be begging Sony to back off.

    Sony sued the wrong guy
    I am an advocate against mass piracy, do not distribute anyone's copyrighted work but my own, do not take crap lying down, and am even pro DRM in a sense. For example, I believe Apple has every right to lock down their iPhone in the factory as much as they want, but once it's paid for and mine, I have the right to unlock it, smash it, jailbreak it, look at it, and hack on it. Fortunately, the courts agree with me on this point.
    My PS3 goal has been to provide users a legitimate path to homebrew, which by the standards of all previous cases (or, in reverse), is 100% legal. Sony does not even try to allege piracy or copyright infringement in this case, they allege I did things like play "super mario world, an unauthorized game" on MY PS3. And access MY PS3 in an unauthorized way. Who are they to authorize what I do with my taxed and paid for property?
    fail0verflow's goal was even nobler than mine. They wanted to give you back a feature Sony illegally stole, Linux on your PS3. It's shameful on Sony's part that they are being sued at all. If you have a problem with pirates, sue them, don't sue people who point out your shortcomings.

    Why should I care about your personal legal troubles?
    You shouldn't. For example, if I was taken to court for sex crimes in Sweden, I would never ask for donations. But this case isn't about me. Clearly I am not being sued because of something I have that Sony wants, I am being sued in order to send a message that Sony is not to be messed with. But if I(and all codefendants likewise) actually win this, we have the power to send a much stronger message back. That consumers have rights, and we aren't afraid to stand up for them.

    Why should I trust you? I just saw you trying to rap battle Sony
    My attempts at humor aside, I do take this whole matter very seriously. Again, it's not about me, I was on the verge of quitting this stuff last June, and I would hate to be the one who sets a reputation for hackers that all a company has to do is sue us and we back down. In fact, I want the opposite reputation set, that the more a company tries to abuse the legal system, the harder we rally back. I will be the first person in line on the launch date of the Xperia Play, and itching to get my hands on the Next GEOHOT Project.

    Why did you wait until now to set this up?
    I didn't want to be trigger happy, and thought the suit might go away quickly. Also, I had to consult with my lawyers about how to do this. It's been over a month, and it looks like this is going to be a drawn out case. I am in this for the long haul. I am very serious ethically when I take donations, for all iPhone work I only accepted after the fact, here after the fact is too late. Now I am pot committed so to say. 

    How much should I donate?
    Put it this way, Sony has 5 lawyers, I have 2. I'd like to level the playing field, and really get some hard hitters in there. I have already racked up over 10k in legal bills; donate whatever you feel like. Leftover donations at the end of all this will be donated to the EFF.

    What if I want to donate more than I feel comfortable sending through PayPal?
    I'm excited! Email me, we'll figure it out.

    Why doesn't the EFF fund this?
    Ask them. They have offered to provide some legal help though, which is much appreciated.

    Donate to help you, you're the reason I can't play Modern Warfare now�
    No, I'm not. Kakaroto explains this really well here. I have never played PS3 online ever. Frankly I'm amazed by the apparent ease with which these cheats were created, security 101, why is the security in the client anyway? I had no idea this would happen, and am in full support of the cheaters being permabanned from PSN.

    I'm a poor college student, what can I do to help?
    I feel you, don't worry. Spread the word. Let people know how you feel about what Sony is doing. Let Sony know how you feel about what Sony is doing.

    What if SCEA tries to settle?
    Lets just say, I want the settlement terms to include OtherOS on all PS3s and an apology on the PlayStation blog for ever removing it. It'd be good PR for Sony too, lord knows they could use it. I'm also willing to accept a trade, a legit path to homebrew for knowledge of how to stop new firmwares from being decrypted.

    Why isn't SCEA trying to settle?

    Check out the new blog
    Old index page for archival purposes here

    Contact Me
    geohot ... gmail
    Posted Apr 12, 2011, 4:00 AM by Leo - www.superarts.org -
  • Android Webapp Guide

    The Basics

    This is the demo project. We are going to create a new project based on this one. 

    The directory ~/prj/android is essential.

    Make A Copy of WebDemo

    cd ~/prj/android/WebDemo
    ant clean
    cp -r ~/prj/android/WebDemo ~/prj/android/cvhod

    *"cvhod" stands for Castlevania: Harmony of Dissonance, キャッスルヴァニア 白夜の協奏曲.

    Changing Strings (URI, App Name, Package Name, etc.)

    Rename source file

    ~/prj/android/cvhod$ mv src/org/superarts/android/webapp/WebDemo src/org/superarts/android/webapp/cvhod

    Modify URI

    ~/prj/android/cvhod$ vim AndroidManifest.xml
      3     package="org.superarts.android.webapp.WebDemo">
      3     package="org.superarts.android.webapp.cvhod">

    Modify package name

    ~/prj/android/cvhod$ vim src/org/superarts/android/webapp/cvhod/WebDemo.java 
      1 package org.superarts.android.webapp.WebDemo;
      1 package org.superarts.android.webapp.cvhod;

    ~/prj/android/cvhod$ vim res/layout/main.xml
      3     xmlns:myapp="http://schemas.android.com/apk/res/org.superarts.android.webapp.WebDemo"
      3     xmlns:myapp="http://schemas.android.com/apk/res/org.superarts.android.webapp.cvhod"

    Modify App Name

    ~/prj/android/cvhod$ vim res/values/strings.xml 
      4     <string name="app_name">演示程序</string>
      4     <string name="app_name">恶魔城——白夜的协奏曲完全解说</string>

    Modify build script

    ~/prj/android/cvhod$ vim m
      4 adb uninstall org.superarts.android.webapp.WebDemo
      6 # adb -s emulator-5554 install bin/WebDemo-debug.apk
      7 adb install bin/WebDemo-debug.apk
      4 adb uninstall org.superarts.android.webapp.cvhod
      6 # adb -s emulator-5554 install bin/cvhod-debug.apk
      7 adb install bin/cvhod-debug.apk

    Project Update

    ~/prj/android/cvhod$ android update project --name cvhod --path .
    Updated local.properties
    File build.xml is too old and needs to be updated.
    Updated file ./build.xml
    Updated file ./proguard.cfg

    After run ~/prj/android/cvhod/m, you should be able to see the app as above. Now we can start our actual work.

    Working with Web Page

    Editing Contents

    ~/prj/android/cvhod$ vim assets/demo.html 

     25 <div class="demo">
     26 <div id="accordion">
     27     <h3><a href="#">Section 1</a></h3>
     28     <div>
     29         <p>
     30         Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
     31         ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
     32         amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
     33         odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
     34         </p>
     35     </div>
     25 <div class="demo">
     26 <div id="accordion">
     27     <h3><a href="#">释名</a></h3>
     28     <div>
     29         <p>
     30         Concerto,便是所谓的“协奏曲”,词源是意大利语“Concert”(音乐会,同时有“协调”之意)。它的读法应该是[ken'cheatou],颇有
     31         <br>
     32         <br>
     33         “协奏曲”指的是这样一种音乐:它由一个交响乐队和一个(或几个)独奏乐器组成,通常分为三个乐章。在游戏中,杰斯特·贝尔蒙>
     34         <br>
     35         <br>
     36         而本作的名称如果直译成英文,显然应是“Concerto of the White Night”;日版的英文如果直译的话,意思应该是“午夜太阳的协奏
     37         <br>
     38         <br>
     39         另外,“白夜”的非官方英文翻译乃是“White Night Concerto”。有必要说明,在英文中White Night和Midnight Sun都是确有其词,>
     40         </p>
     41     </div>

    Changing Theme

    ~/prj/android/cvhod$ vim assets/demo.html 

      3     <link type="text/css" href="jquery/css/ui-darkness/jquery-ui-1.8.8.custom.css" rel="Stylesheet" />
      3     <link type="text/css" href="jquery/css/THEME-NAME/jquery-ui-1.8.8.custom.css" rel="Stylesheet" />

    Checking Available Themes

    ~/prj/android/cvhod$ ls assets/jquery/css
    le-frog     smoothness  ui-darkness

    Downloading New Theme

    Changing Background Color

     16     <body style="background-color:black">

    *Always run ./m to check your progress.

    Preparing Materials

    res/drawable/icon.png - Maker: http://www.quirco.com/iPhoneIcon/
    artwork.png: 512x512
    At least 2 screenshots: 320w x 480h, 480w x 800h, or 480w x 854h 

    Making Release APK

    Making Release APK
    /home/louisa/Downloads/apache-ant-1.8.2/bin/ant release
    <input passwords twice>
    ~/prj/android/cvhod$ adb uninstall org.superarts.android.webapp.cvhod
    ~/prj/android/cvhod$ adb install bin/cvhod-release.apk 
    Test Release Build
    # adb uninstall org.superarts.android.webapp.XXXXXXX <- your name here
    # adb install bin/XXXXXXX-release.apk

    Publishing App

    Posted Feb 5, 2011, 2:31 AM by Louisa - www.superarts.org -
  • My 1st Blog
    I'm just moving things from https://sites.google.com/a/superarts.org/studio/ because I found it'd been an awful idea to mix English and Chinese contents at the same site. But anyway, this site is merely for personal use only. It may expand in future, but not very likely.

    Anyway thanks for reading this. I'll try my best to make it useful.
    Posted Jan 16, 2011, 9:05 AM by Leo - www.superarts.org -
Showing posts 1 - 10 of 10. View more »

Subpages (1): Start