Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Duct Tape
Sep 30, 2004

Huh?
I keep saving multiple copies of files to different locations: songs, pictures, whatever. I wanted a little tool that will detect dupes based on different criteria (file name, name + extension, MD5, size) and let me clear them out. Built it this morning with some horrible, horrible WPF code.



And because the screenshot lists it, here's Pirate Penis.

Adbot
ADBOT LOVES YOU

movax
Aug 30, 2008

hendersa posted:

A board/circuit without the EEPROM isn't a cape. It's just a circuit wired into the BeagleBone. Capes use the capemgr to dynamically enable their device tree overlay fragments at boot when the capemgr detects the cape board. Here is the lowdown on making a proper cape that you want to make available via SparkFun and the like:

Ah, so that would let the capemgr set up one of those many 'modes'?

quote:

1. You need the EEPROM on there with a string flashed into it that identifies the cape.
2. You need to have either two sets of jumpers or two DIP switches on there to set the proper capemgr slot.
3. You need to get the BeagleBone guys to include a device tree fragment for your cape in the main device tree for the BB/BBB. This fragment will be marked as "disabled", and it will be built statically into the device tree. The fragment will have an identifier that matches the string on the EEPROM.

2's easy, though the added BOM cost of the DIP switch kinds sucks, heh. Same for 1. 3 is interesting though, I didn't know that device-tree could do things like have dormant chunks that are then enabled later after boot.

quote:

Unless you get all three of these things, you might as well just leave off the EEPROM. The EEPROM tells the capemgr which device tree fragment to enable, and the DIP switches tell the capemgr which slot to put the cape in. If you think you can swing #3 (which you probably can, if you get the cape ready for sale and send a prototype to the right person), then go ahead and throw the EEPROM on there. You definitely need to include the DIP switches on there, though, if you do so:



If you leave off the EEPROM, you can copy your device tree overlay into /lib/firmware and load it by cat'ing the name of the .dtbo file (minus the extension) into the proper "slots" file. This will start up the driver, mux the pins, etc. for your board as specified in the device tree. The capemgr will stick the overlay fragment into a higher-numbered slot that isn't one of the four slots that are reserved for proper cape expansion boards.

It won't break the bank to throw the EEPROM and DIPs on there, so you can get some geek cred by designing a complete cape.

It seems like the overall cape market / community is not as strong as the 'Duino shield market is. I'm going to strive to make the cape play nice with other ones out there, but I don't know where to start to find the most 'popular' capes and avoid stamping on their pins.

hendersa
Sep 17, 2006

movax posted:

Ah, so that would let the capemgr set up one of those many 'modes'?

2's easy, though the added BOM cost of the DIP switch kinds sucks, heh. Same for 1. 3 is interesting though, I didn't know that device-tree could do things like have dormant chunks that are then enabled later after boot.

Well, the mode muxing of the pins is in the device tree chunk that is disabled. The capemgr does little more than figure out which cape is plugged in and switch the proper node in the device tree from disabled to enabled. Of course, enabling a node changes the muxing and starts an instance of the compatible device driver in the kernel to accept the input from the pins. The real strength in the capemgr is allowing the loading of device tree overlay nodes from userspace at runtime. So, if you don't have a full-fledged cape, you can still insert a DT node for it and get the associated kernel driver up and running without building the node statically into the kernel.

quote:

It seems like the overall cape market / community is not as strong as the 'Duino shield market is. I'm going to strive to make the cape play nice with other ones out there, but I don't know where to start to find the most 'popular' capes and avoid stamping on their pins.

It isn't good at all. Small selection and very overpriced due to low volume of sales. For compatibility, start with these capes:

http://www.elinux.org/Beagleboard:BeagleBone_Black_Capes

Typically, you just steer clear of the eMMC, LCDC, and McASP audio pins. I2C is a good choice, since you can share that bus with other capes. SPI0 is OK, though that will probably step on other capes that use it. P8.7 through P8.19 are the commonly used GPIO pins for custom stuff. The best way to go is to figure out what capes could possible be used in conjunction with yours and then focus on pin compatibility with those. P8.11, P8.12, P8.15, and P8.16 can also be muxed into high-speed PRUSS mode in mux mode 5, and a bunch of pins on P9 can be muxed into PRUSS mode, too. Figure out how many pins you need and I can help you figure out a good set of pins to use.

movax
Aug 30, 2008

hendersa posted:

It isn't good at all. Small selection and very overpriced due to low volume of sales. For compatibility, start with these capes:

http://www.elinux.org/Beagleboard:BeagleBone_Black_Capes

Typically, you just steer clear of the eMMC, LCDC, and McASP audio pins. I2C is a good choice, since you can share that bus with other capes. SPI0 is OK, though that will probably step on other capes that use it. P8.7 through P8.19 are the commonly used GPIO pins for custom stuff. The best way to go is to figure out what capes could possible be used in conjunction with yours and then focus on pin compatibility with those. P8.11, P8.12, P8.15, and P8.16 can also be muxed into high-speed PRUSS mode in mux mode 5, and a bunch of pins on P9 can be muxed into PRUSS mode, too. Figure out how many pins you need and I can help you figure out a good set of pins to use.

Hmm, I suppose I'd just be happy to break even, I guess...

Here's the schematic symbol I made for the BB headers (probably a few glitches in there somewhere):



I started by marking off the pins that I considered bad ideas to use. I really only have need for two pins that would go to the PRUSS. All the others I may have (I2C for cape EEPROM, and GPIO for door relays, LEDs, etc) can be on any generic GPIO. So, I guess my priority pins that drive everything are two pins that go to the same PRU; I think I got those, but IIRC, they are red in the BBB SRM, and I can't find an explanation for why. Still waiting on my breadboard capes.

I need to sit down and figure out my strategy for using the SYS_RESET# signal from the BBB as I cannot have any voltage applied to system pins prior to that; I think I'm going to need an extra inverter IC (dammit BOM cost) as the octal buffer I want to use has active-low output enables. Maybe I'll switch to one with active-high output enables.

movax fucked around with this message at 00:58 on Jul 29, 2014

Woodsy Owl
Oct 27, 2004

Duct Tape posted:

I keep saving multiple copies of files to different locations: songs, pictures, whatever. I wanted a little tool that will detect dupes based on different criteria (file name, name + extension, MD5, size) and let me clear them out. Built it this morning with some horrible, horrible WPF code.



And because the screenshot lists it, here's Pirate Penis.


You're welcome to check out my project.log for dfScan for some ideas.

Are you using C# or VB?

Duct Tape
Sep 30, 2004

Huh?

Woodsy Owl posted:

You're welcome to check out my project.log for dfScan for some ideas.

Are you using C# or VB?

Ha, I didn't even think of looking to see if anyone else had solved this problem. Mine definitely does all the work on the UI thread so the interface is locked during execution, something I imagine you got around either by Swing doing native fancy stuff, or by threading up the different searches by hand.

And C# all the way.

Polio Vax Scene
Apr 5, 2009



Work was really stressful today. I made a thing to help me calm down.



Make your own here
Left click to change the tile shapes and shift click to rotate.

Woodsy Owl
Oct 27, 2004

Duct Tape posted:

Ha, I didn't even think of looking to see if anyone else had solved this problem. Mine definitely does all the work on the UI thread so the interface is locked during execution, something I imagine you got around either by Swing doing native fancy stuff, or by threading up the different searches by hand.

And C# all the way.

There are a lot of software solutions for detecting duplicate files, I decided to do it for practice. It's a pretty good exercise, as I'm sure you've found. It's super useful too, and satisfying writing and using your own software solutions. Also, a lot of existing software is not free or has some trial period. Their feature set is also limited.

I got around interface-lock by using SwingWorker threads for the scanning process and implemented a tabbed UI for doing multiple scans and viewing results simultaneously.

I chose Java for the sake of straightforward cross-platform compatibility.

I plan on extending duplicate detection beyond just file hashes. I'm going to implement a photo/image duplication solution, an MP3 tag solution, and so on.

edit: Apparently my project.log thread went to Archives today because I haven't updated it in a while. Oops.

Woodsy Owl fucked around with this message at 02:02 on Aug 2, 2014

LP0 ON FIRE
Jan 25, 2006

beep boop

Manslaughter posted:

Work was really stressful today. I made a thing to help me calm down.



Make your own here
Left click to change the tile shapes and shift click to rotate.

I really like the wood grain effect. Reminds me of this thing I have in real life called Nueve. I also really enjoy making stuff out of tiles, and making symmetry. Good work.



The controls are simple, but I also think it makes it harder to make something. So perhaps you should add some more functionality, like a tile picker that you can drag around and minimize, and/or the ability to sample tiles. I think erasing tiles would be a good thing to, because it takes a long time to keep on clicking until you have the black background tile.

LP0 ON FIRE fucked around with this message at 13:45 on Aug 2, 2014

Duct Tape
Sep 30, 2004

Huh?
Tetrish: a 2D, physics based, line removal game. I'm learning Unity and making a classic game with a twist seemed like a good approach.
It's got a number of bugs, and a damned ugly UI, but it actually plays! I'm pretty satisfied with how it's come along, and I'll probably put a cork on this one and start up on a new game in the next few days.

Playable at: http://tetrish.dungeo.com


The most interesting problem to solve was determining when a line is cleared. The solution I went with was raytracing at 50 different locations for each line. Based on how many collide with a gamepiece, I determine the percent of how filled a line is. That number is displayed via the green/red progress bar to the right of each line.

If the gamepieces were constrained to a grid, I'd set the line-clear threshold to 100%; however, since the pieces bounce around a little bit, it's pretty much impossible to fill 100% of a line. After some solo playtesting, I found 92% line clear was adequate. Greater than 90% means you have to have more than nine of ten tiles filled on a given line, and 92% gives a pretty decent leeway for physics slip.
Basically, you have to hit 46 of the 50 raytracing locations in a given line for it to be considered cleared.

Was quite a bit of fun to work on!

darkpool
Aug 4, 2014

HTML5/mobile 3D game engine I made in my last job, it will probably never see the light of day because of reasons, despite being almost complete.




Tres Burritos
Sep 3, 2009

:circlefap:

You had me at HTML5

kayakyakr
Feb 16, 2004

Kayak is true
that looks very nice darkpool.

TJChap2840
Sep 24, 2009

darkpool posted:

HTML5/mobile 3D game engine I made in my last job, it will probably never see the light of day because of reasons, despite being almost complete.

This is really impressive. You should do something with this.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

darkpool posted:

HTML5/mobile 3D game engine I made in my last job, it will probably never see the light of day because of reasons, despite being almost complete.





I don't suppose you own or can get code rights to it, and just kick it out as open-source?

(probably not, but sometimes possible if it's a small shop / they shuttered / etc)

_Gumby
Sep 14, 2005
Fun Shoe

darkpool posted:

HTML5/mobile 3D game engine I made in my last job, it will probably never see the light of day because of reasons, despite being almost complete.



Is the Reaper here because it was a Warmachine game, or just placeholder? Sounds pretty rad, a HTML5 Warmachine game....can you give any more background about it?

darkpool
Aug 4, 2014

TJChap2840 posted:

This is really impressive. You should do something with this.

Shalinor posted:

I don't suppose you own or can get code rights to it, and just kick it out as open-source?

(probably not, but sometimes possible if it's a small shop / they shuttered / etc)

Yeah, tell me about it. I designed this to be a Unity alternative with manageable and affordable source access (also more robust :smug:), but after getting a bunch of customers lined up, the powers in charge decided it should be a direct Unity competitor and we'd be cloning their business model too, no source access, defeating the point of making it. The bulk of the project took about 5 months with myself and one other engineer, which was already a ridiculous task without directly going toe to toe with Unity or Epic.

Anyway, the point is, project killed because of jealously guarded source. I have a whole load of stories about this thing, I could elaborate forever. Positives were I got to hang out with Brendan Iribe from Oculus and David Helgason from Unity, and then name drop them on SA.

All the art assets just came from old assets in storage, as we didn't have an artist, what's on display is more of a tech demo as a result. I didn't know what the reaper was until I started showing the demo around. :)

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

darkpool posted:

I have a whole load of stories about this thing, I could elaborate forever.
Please do! It looks very interesting. What kind of codebase is it, for instance?

Centripetal Horse
Nov 22, 2009

Fuck money, get GBS

This could have bought you a half a tank of gas, lmfao -
Love, gromdul

Manslaughter posted:

Work was really stressful today. I made a thing to help me calm down.



Make your own here
Left click to change the tile shapes and shift click to rotate.


Welp, good thing I'm unemployed.

A grid, some way to drag tiles, and select/duplicate/mirror commands would be excellent additions.

darkpool
Aug 4, 2014

Sagacity posted:

Please do! It looks very interesting. What kind of codebase is it, for instance?

The engine is written in Haxe, because Haxe compiles to both HTML5 and native code for mobile targets. Unity are now building their own C# compiler in house for similar reasons. Until UE4 started supporting HTML5 the choice was really either/or when it came to HTML5. Tools are a C# wrapper around Chromium, we considered doing it all in browser, but if we're selling source it's better not to expect game developers to also be web developers and we stuck with C#, there are also a lot more useful libraries available for C#, especially when it came to pre-processing big chunks of geometry.

Not every having been in development before the boss was completely confounded by the need for breaks after crunch time, and denied them after initially agreeing when the project was proposed. After months of writing sometimes 1000s of lines of code a day, and no vacation ever, I was fading a lot and had dropped to barely any output at all. To meet our deadlines a contact helped line up some customers so we could hire some more people to pick up the work pace again. But the boss suddenly decided the code was too precious to ever sell, because he has no concept of business models having changed since the late 90s, and threw all the customers out of our office.

Insanity peaked this year at GDC when the boss with his new business-to-customer model, spent more on a booth for 3 days than the entire cost of the product's own development. Competing engines of a similar scale were getting everything for free at bigger company booths.

Then Epic announced UE4 source for $20 a month. The boss still insisted nobody could make money from having source available, and I decided I couldn't help the guy any more. Initially our project was proposed as having a similar source model to UE4 and we would have beaten them and others who followed to the punch. But it wasn't to be.

It was a really fun project to work on, we got a lot of encouragement from some really big players, especially because of our performance and rendering quality. Who knows, it might all happen over again. :)

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
Gah, amazing. I've been working with Haxe for my simple little game as well and I must say I really enjoy it. It's pretty well thought-out and it truly is cross-platform. I would expect having an HTML5 engine embedded in Chromium would've been tricky as hell to get working correctly though, especially when you need to communicate UI events to it.

darkpool
Aug 4, 2014

Sagacity posted:

Gah, amazing. I've been working with Haxe for my simple little game as well and I must say I really enjoy it. It's pretty well thought-out and it truly is cross-platform. I would expect having an HTML5 engine embedded in Chromium would've been tricky as hell to get working correctly though, especially when you need to communicate UI events to it.

At risk of turning this thread in to Darkpool's Misadventures in the Games Industry and being moved elsewhere by Shalinor. :) The more difficult question is how the engine integrates with Bullet Physics/Ammo.js ;). But, eventing is quite trivial thanks to Haxe's reflection and metadata systems. Communication is done by path evaluation, a kind of data-driven scripting that uses reflection to break down a string like "Game.World.Entities('portal').Open()" and dynamically call anything within the game/engine, combined with JSON it's very effective and can be easily sent to Chromium or over a socket if running on a remote device such as a phone.

bonds0097
Oct 23, 2010

I would cry but I don't think I can spare the moisture.
Pillbug

darkpool posted:

At risk of turning this thread in to Darkpool's Misadventures in the Games Industry and being moved elsewhere by Shalinor. :) The more difficult question is how the engine integrates with Bullet Physics/Ammo.js ;). But, eventing is quite trivial thanks to Haxe's reflection and metadata systems. Communication is done by path evaluation, a kind of data-driven scripting that uses reflection to break down a string like "Game.World.Entities('portal').Open()" and dynamically call anything within the game/engine, combined with JSON it's very effective and can be easily sent to Chromium or over a socket if running on a remote device such as a phone.

From a cursory reading of the article you posted and your description, does path evaluation not open you up to the possibility of injection attacks (the article mentions a similarity to xpath) or is all input internal/untainted? Since we're talking about gaming in the browser, I'm assuming there's some ability for the client to manipulate data and the possibility of malicious injection.

darkpool
Aug 4, 2014

bonds0097 posted:

From a cursory reading of the article you posted and your description, does path evaluation not open you up to the possibility of injection attacks (the article mentions a similarity to xpath) or is all input internal/untainted? Since we're talking about gaming in the browser, I'm assuming there's some ability for the client to manipulate data and the possibility of malicious injection.

The interface is only exposed to the editor and not once the game is published in the browser, from then it's all internal. It's just like a mini-scripting system, there's also a sandbox which controls access even in editor mode.

Tres Burritos
Sep 3, 2009

darkpool posted:

At risk of turning this thread in to Darkpool's Misadventures in the Games Industry and being moved elsewhere by Shalinor. :) The more difficult question is how the engine integrates with Bullet Physics/Ammo.js ;).

Ah man, I sorta gave up on WebGL physics when I saw what a loving mess Ammo was. Were you adding bullet stuff in through the .idl file?

Bizarro Buddha
Feb 11, 2007
Calling this a screenshot is a bit of a cheat but I'm working on an AI that can play Hearthstone and it got a lot stronger today!



I've got a project.log here.

PS. Love the cabin
Dec 30, 2011
Bee Lincoln
This isn't nearly as impressive and it's not nearly as noticeable in the screenshot (arrows on sides) but here goes my "try coding again" timewaster:


It's pretty quick and simple thing for Warcraft 3, all it does is allow you to tap the borders to scroll the screen around and hopefully make it playable on a tablet.
All it does behind the scenes is hook CreateWindowEx and force Warcraft's window to be a child of a window I create just to be the border and handle touchscreen input.

It "works" but it's a bit fidgety if the border is set too small, there may be better ways to do it which I may or may not research later.
:)

Xerophyte
Mar 17, 2008

This space intentionally left blank
I got asked to create some pictures showcasing various renderer features at work. A programmable material definition language is a feature and I like fractals so ...



It's a reflective microfacet BRDF, with roughness determined by Mandelbrot escape time. It also looks pretty neat.

E: Huh, I thought the imgur limit was 2 MB. Oh well, at least I can make a less crap .jpg.

Xerophyte fucked around with this message at 12:51 on Aug 8, 2014

Careful Drums
Oct 30, 2007

by FactsAreUseless
Here's a screenshot of my stupid pet project that I might actually get to finish. I always wanted a website that would just play instrumental hip hop beats that I could listen to while working or gaming or whatever.



It uses EntityFramework to query the SoundCloud.com API for an arbitrary user's 'favorites list' and store that metadata in an Azure DB. The ASP.NET MVC front end queries that DB and presents this front-end. When you click 'play' the browser will stream that track from SoundCloud.

Needs tons of polish before I release it but hey its a proof-of-concept and it works!

lord funk
Feb 16, 2004

Xerophyte posted:

I got asked to create some pictures showcasing various renderer features at work. A programmable material definition language is a feature and I like fractals so ...



It's a reflective microfacet BRDF, with roughness determined by Mandelbrot escape time. It also looks pretty neat.

E: Huh, I thought the imgur limit was 2 MB. Oh well, at least I can make a less crap .jpg.

I love this. I would buy a little paperweight Mandelbrot sphere in a second.

Careful Drums
Oct 30, 2007

by FactsAreUseless
Another screenshot, and hey I released the first version up to Azure! I'm amazed that with azure you can just give it a Git repo and it will do all the deploy for you. Now all I have to do is find some not lovely music to put on it.



http://justneedabeat.azurewebsites.net/

Jick Magger
Dec 27, 2005
Grimey Drawer

Careful Drums posted:

Another screenshot, and hey I released the first version up to Azure! I'm amazed that with azure you can just give it a Git repo and it will do all the deploy for you. Now all I have to do is find some not lovely music to put on it.



http://justneedabeat.azurewebsites.net/

Yeah soundcloud can be pretty hit or miss, but I like the idea in general. I would suggest adding some volume controls if you can (I have freakishly sensitive hearing, and soundcloud is always way too loud for my liking).

Careful Drums
Oct 30, 2007

by FactsAreUseless

Jick Magger posted:

Yeah soundcloud can be pretty hit or miss, but I like the idea in general. I would suggest adding some volume controls if you can (I have freakishly sensitive hearing, and soundcloud is always way too loud for my liking).

Thanks! A volume knob is the next thing on the list but it Suits My Needs as current so I wanted to get it out the door.


e: I added a volume knob ripped straight from the jquery docs



(oh god how do i front-end design?!?!)

Careful Drums fucked around with this message at 20:04 on Aug 15, 2014

Careful Drums
Oct 30, 2007

by FactsAreUseless
ahh much less terrible

Valtis
Sep 21, 2009
I've been building a simple gui with SDL 2 where the windows are defined in XML. Recently I've been implementing a text box widget which has been more challenging than I thought. Making sure that cursor position is correct when typing or when text gets wrapped was more difficult than I imagined at first, and UTF-8 makes things like "remove single character from a string" interesting as well.

Gfycat link with text box

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice
Continuing in my messing around with React, I made something vaguely useful: yet another JSON viewer.



You can use it and tell me everything I did wrong here: http://eskimospy.com/stuff/react/json/

Knyteguy
Jul 6, 2005

YES to love
NO to shirts


Toilet Rascal
So not as fun the other projects posted since it's for my job, but I'm working on a new Windows 8 mobile/tablet app for our enterprise client:



That's one part of many, but what I'm currently working on.

There will also be a RESTful API driven via ASP.NET MVC on the client's main web server. The api website will use a (perhaps custom) dll to communicate with a Dynamics AX server, where we can expose class methods to push/pull data. Kind of a big project for one developer when I write it all out! Should look great on the resume though.

First time working with a mobile device, and first time working with WPF/XAML. Kind of a lot to take in.

Also created a disco-on-the-go mobile app with a cool disco ball using some creative commons midis :frogout:.

Jewel
May 2, 2009

Lumpy posted:

Continuing in my messing around with React, I made something vaguely useful: yet another JSON viewer.



You can use it and tell me everything I did wrong here: http://eskimospy.com/stuff/react/json/

Seems neat! I tested it on local data (you really should add a textbox to let you just paste in json, I had to hack it together via "java script:someFakeJson = {myJSON}" and it seems to work okay.

Factor Mystic
Mar 20, 2006

Baby's First Post-Apocalyptic Fiction

I'm extremely distracted by your apparently default VS editor color scheme. Check out http://studiostyl.es/ if you don't know it.

Adbot
ADBOT LOVES YOU

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
Nothing wrong with the default theme IMO

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply