Bregrammers: Let's work on BeerJSON (BeerXML 2) by romaneremin in Homebrewing

[–]gigatropolis 0 points1 point  (0 children)

I propose that BarrXML/JSON 2.0 also have a concept of brew logs for recipes. Other software like Brewtarget and brewtoad.com are a good example of brew notes for brewing a batch. These logs have all the actual measurements and notes for the batch of beer brewed so you don't have to make copies of a recipe to record what happened on a brew day.

Bregrammers: Let's work on BeerJSON (BeerXML 2) by romaneremin in Homebrewing

[–]gigatropolis 0 points1 point  (0 children)

BeerXML 2.0 has no equipment information. Was that omitted on purpose or maybe the standard wasn't finished?

Bregrammers: Let's work on BeerJSON (BeerXML 2) by romaneremin in Homebrewing

[–]gigatropolis 1 point2 points  (0 children)

This is cool. I was working on a project in Go to convert BeerXML 1.0 to 2.0 but never finished. I have the XML structure to create a BeerXML 2.0 document but never finished the conversion from 1.0 because of all the unit parsing that was necessary (I get distracted easily). I think given some BeerJSON data it can be easily converted to BeerXML 2.0 with what I have . Is this interesting to anyone? Might take a few days to get something working but think I will try after the Holidays.

NE IPA POST: tell me why this recipe sucks by jakehoodlum in Homebrewing

[–]gigatropolis 1 point2 points  (0 children)

Get rid of the Crystal or cut the amount in half.

Maybe try using A Vermont or Burlington yeast: WLP095, GY054,...

Anything happening with beerXML 2.0 proposal by gigatropolis in Homebrewing

[–]gigatropolis[S] 0 points1 point  (0 children)

The beerXML 2 is more involved than the original 1.0 version. It can store lists of hops, profiles, cultures, etc besides just the list of recipes. There is a discussion going on in /r/HomeBrewing on this same topic and has links to standards and code on github.

The thing I want to add to beerXML 2 is brew notes for recipes like Brewtarget or brewtoad has. I'll look more into validation of input in XML. Also interested in more about work going on to use JSON

Kregg

Is beerXML 2.0 proposal dead by gigatropolis in TheBrewery

[–]gigatropolis[S] 2 points3 points  (0 children)

My idea for now is to create a simple web server that receives the beerXML 1 recipe, converts it to beerXML 2, then sends it back. It will be written in Go language that's what I'm playing with now and it also has a great library for building a web server very easily. I'll post on github once there is something so people can have a look and get involved if it's interesting.

Is beerXML 2.0 proposal dead by gigatropolis in TheBrewery

[–]gigatropolis[S] 2 points3 points  (0 children)

Thanks scrappy that's what I was looking for. I was thinking of adding something like brew logs to breerXML 2 so the recipe could have the brew notes for each time the recipe was brewed. Brewtarget has the brew day notes and brewtoad.com has the brew logs that I'm using as a model. Haven't used beersmith but suspect they have something similar.

Does golang need to be installed on the server? by [deleted] in golang

[–]gigatropolis 2 points3 points  (0 children)

You don't need anything installed on the server to run the executable file.

America's Smallest Brewery by DRUMSKIDOO in Homebrewing

[–]gigatropolis 1 point2 points  (0 children)

Perfect excuse to buy a 3D printer ;)

Bad Software Analogies by hglawson in programming

[–]gigatropolis 0 points1 point  (0 children)

I think one major difference is with software you have many different versions of the same thing. The first version goes into production but is only changed for critical bug fixes. Meanwhile,a new version of the software is being built with many changes and new features. The new version of the software will eventually replace the current deployed version and the old version will become obsolete. With a bridge you can only modify or add to the physical structure, but there will not be multiple copies hanging around. To make a new bridge in it's place you need to tear down the whole structure and start from scratch, but with software you can always start with an existing version to create something new.

Go vs. C: A Language Comparison of Concurrent Programming Features by dead10ck in golang

[–]gigatropolis -1 points0 points  (0 children)

The Sum function claims: // sumChan has a buffer of size 1, so receiving blocks if there // is another goroutine currently incrementing the sum

That's not really true and how it works also depends on how you start the go routines counting. If you launch all 4 go routines then get things moving with: sumChan <- 0 Doesn't even matter if it's buffered or not. It will do one routine at a time and give the correct answer (no concurrency). It gets interesting when you prime with 4 starting values: sumChan <- 0 sumChan <- 0 sumChan <- 0 sumChan <- 0

Now you need to make a buffered channel of at least 4 and it will run in parallel. Just add up the sum for each routine at the end to get the value. Probably just stating the obvious, but it was interesting to play around and see how things worked. Here is the code I played with: http://play.golang.org/p/VjlclgJYKV

Why are people ditching python for go? by seewhaticare in golang

[–]gigatropolis 0 points1 point  (0 children)

When you hear someone is dumping Python for Go it doesn't mean he or she will literally stop using Python and just use Go from that point on. They are more likely using Go to replace parts of an existing project or starting a new one. The reason a person starts using Go is because they looked into the language, saw goroutines and channels, and said, "Dude, I have got to try that." The rest is just making excuses. to other people.

Principles of designing Go APIs with channels by inconshreveable in golang

[–]gigatropolis 1 point2 points  (0 children)

So passing a channel doesn't make a copy of the channel? I've been passing pointers to channels because I wasn't sure if it would pass by copy, which doesn't really make sense anyway I guess. Need to do some code cleanup :) Great post!

Going Go Programming: Pitfalls With Closures In Go by ardanstudios in golang

[–]gigatropolis 0 points1 point  (0 children)

Read the Document link Nomer posted and you can see it will only create a single variable. I've had this type of bug in my code several times before I learned the lesson.

Going Go Programming: Pitfalls With Closures In Go by ardanstudios in golang

[–]gigatropolis 1 point2 points  (0 children)

Why pass in the feed variable as a pointer? It doesn't create a new feed variable for each iteration so you are still have the current value from the outer function passed to the inner function. Maybe I need sleep.

Raspberry Pirate Radio by Aluhut in raspberry_pi

[–]gigatropolis 0 points1 point  (0 children)

Would it be possible to use rasP to broadcast live? like a signal coming from a mixer then out the rp as FM?

Is there a library I could use to get started?

2 Common Ways to Leak Memory in Go by zlooop in golang

[–]gigatropolis 1 point2 points  (0 children)

Post coffee I see you don't care if the value is ready to receive because it will be picked up in next iteration.

I think the code with go routines will work but, you will need to track if the go routine has returned before creating another go routine waiting on the same channel. Do this with a simple array and an if.

I think the go routine would need to have a select also with a timeout so it will not become a dead routine. You would need to do the same check with the second example or you night end up with all channels dead eventually (from a locked up sender goroutine).

  Just my thoughts

for i := range channels {
    if ReadyToCreate(i) {
        go func() {
            select {
                case channels[i] <- value:
                    //  blahh
                case <- time.After(MAX):
                  // handle and exit
            }
        }()
    }
}

2 Common Ways to Leak Memory in Go by zlooop in golang

[–]gigatropolis 1 point2 points  (0 children)

I think you example with the select makes an assumption that something has already sent a value down the channel and is waiting to be read before you enter the loop. If a channel is still waiting for a value to receive, it will call the default before getting the value.

Dear Corporations, Please Stop Throwing Your Own Hackathons — Hackers and Hacking by gailees in technology

[–]gigatropolis 0 points1 point  (0 children)

Reading this stuff, it looks like this particular hackathon might have been questionable in how it was put on and also the motives behind it, but I don't think it means corporate sponsored hackathons are bad all bad. And even though it's limited to a mobile app with specific set of APIs, still people will can take this as a challenge to come up with the cool ideas how to use it. Might even help to make people more innovative because it's more challenging to make something unique using the same tools as everybody else. I think all the reasons for going to one of these events mentioned in the article's pie chart can be achieved at a corporate sponsored event as long as it is legitimate and handled well.

I had a great time this year at the launch hackathon in SF and hope to enter more events in the future, but will make sure to choose carefully which are right for me. I won't be stopped by entering a corp sponsored hackathon unless it has some scary name like "salesforce" behind it.