Posts Tagged ‘ project ’

Forking heck

Posted on June 21st, 2025 Comments Off on Forking heck

It was close to 10 years ago that I announced that I’d been working on a crypto-based, peer-to-peer poker project named CypherPoker. That initial version was written in a programming language called ActionScript which produced software for the now-defunct Flash platform.

I admit that I still have a soft spot for the language and the platform on which it ran (a.k.a. the runtime).

Not only did Flash allow me to produce code for a broad variety of operating systems and hardware, it was also very creatively expressive. The platform/runtime was originally a way to produce streaming audio and video content for the web which was a groundbreaking advancement for its time. With the addition of a robust programming language, those “movies” could be made to react to user input and that’s when things got really interesting.

A few years later I found myself working for an online casino company and realized that a product like provably fair online poker software that didn’t require a middleman (e.g. PokerStars), was singularly unique. So I set out to write CypherPoker. I learned a lot about cryptography and peer-to-peer networking and pretty soon I knew that the idea was viable.

However, although it solved a lot of the problems associated with such an endeavour, my solution didn’t answer the questions of: who enforces the rules if someone does cheat, and moreover, who holds the money (pot) during the game?

It was suggested that I use Ethereum for the answers. You may have heard of Ethereum due the popular cryptocurrency Ether but this is only one half of this particular blockchain. The other half is a set of fairly open-ended programming instructions (a.k.a. Turing-complete), that run the blockchain. Those instructions can be created using any number of programming languages — in my case one called Solidity — and the resulting programs are called smart contracts.

Because smart contracts are run across the entire Ethereum network, an incentive system was included to ensure that people participate (like all blockchains that I know of, Ethereum uses a cryptographic consensus model), hence the Ether cryptocurrency. If you want to store your code on the blockchain, you pay Ether. If you want to run that code, you pay Ether.

If smart contracts and Ether had hips they would literally be joined at them, so much so that even the most basic transactions on Ethereum (e.g. “send X amount of Ether to recipient Y”), require basic smart contracts to do their thing. It’s also why even these most basic transactions require a fee, payable in Ether.

In the process of developing smart contracts I learned how to create my own Ethereum blockchain, which could have helped to keep transaction costs minimal — at least initially. Due to the intrinsically speculative nature of cryptocurrencies, however, I expected the inevitable eventuality of the same problem that I encountered with the official Ethererum blockchain: playing a hand of poker would eventually become prohibitively expensive. In addition, the consensus model meant I’d need a network of people to help run the blockchain, which I didn’t have.

Nevertheless, I received positive, even enthusiastic comments on the project, and as of the last time I checked it had been starred (the equivalent of “likes“), 70 times on GitHub. Perhaps more importantly, it had been forked 13 times, which means that GitHub users copied the code into their own repositories for their own use, adaptation, etc.

Unfortunately, that rotten piece of shit Steve Jobs (my consistent opinion), bashed Flash and with the help of his drooling and ignorant minions helped to prematurely kill off the technology. I won’t go into the numerous reasons why most of what he’d written was pure crap but it doesn’t change the fact that Flash would ultimately be doomed. Plus, the price of Ether skyrocketed so even without any rake the smart contracts were useful for only very high-stakes games in which expensive blockchain fees would make sense.

So, some years later when browsers began to offer some of the functionality that previously only Flash could offer, I decided to re-write the game for JavaScript. Thankfully, the similarity in names between the two programming languages is more than just coincidence. Not only do they both look and feel similar but they’re functionally related.

In fact, an ActionScript developer would often have to also learn JavaScript since Flash content tended to run within a browser window, and browsers use JavaScript to make web pages functional (i.e. more than just static content). In other words, the ActionScript runtime (Flash) was often embedded in a JavaScript runtime (browser), although this wasn’t always the case.

Sufficed to say, other than having to code everything again, going from one language and runtime to another wasn’t a huge leap. I learned a bunch of lessons in the development of the ActionScript version so its follow-up was produced considerably more quickly and robustly.

Instead of incorporating smart contracts directly, I created a plugin architecture into which they could eventually be slotted and wrote a module using Node.js (another JavaScript runtime), to act as a stand-in. Due to its popularity I added support for Bitcoin which, unlike Ethereum, comes with a highly restrictive set of programming instructions (not even close to Turing-complete), called Script.

With Bitcoin, instead of smart contracts someone would have to assume the role of a “trusted banker and game verifier”. It wasn’t ideal but would allow for completely private games, albeit with someone playing the role of a trusted third party. Besides, I figured, I’d written the smart contracts once and I should be able to dust them off at some point and slot them in.

However, that never happened.

Ether is still way too expensive and I’m no nearer to having enough people to help me create a CypherPoker blockchain so I added support for Bitcoin Cash (a cryptocurrency similar to Bitcoin), tidied up the code, updated the documentation so that anyone else could adapt it, and shelved the project. At this point it has been sitting idle on GitHub for about 6 years.

A couple of days ago I had a look at the repository and was pleasantly surprised to see that it had been starred 106 times and forked 44 times, twice this year and 5 times last year. In addition, 13 people have set a “watch” on the repository so that they can be alerted should it ever be updated.

Between the original CypherPoker and the newer CypherPoker.js, the project has been starred 176 times and forked 127 times with a total of 23 people watching.

Every once in a while I also receive a comment telling me that someone has implemented some changes or done something interesting with CypherPoker.js

As recently as the 6th of this month, for example, someone added a “spectator mode” to the game (not sure if this is a good idea), and someone else claimed that they used the project as a basis for their university thesis (LOL … I’m a Canadian college dropout!)

Altogether, it’s nice to know that the interest is still there.

If you or anyone you know share this interest, drop me a note and maybe we can resuscitate what I still consider to be a unique and very promising project.

Filed under: B Sides, Patrick Bay, Pictures

CypherPoker.JS needs a team!

Posted on June 10th, 2019 Comments Off on CypherPoker.JS needs a team!

In case haven’t mentioned it before, over the past few years I’ve been working on an open-source project called CypherPoker.JS

It’s a decentralized, soon to be anonymous, truly peer-to-peer Texas Hold’em platform that incorporates blockchain technologies and a unique cryptosystem named SRA (based on a MIT research paper from the late 70s), which remove the need for trusted third parties and the things that go along with them: rakes / high fees, censorship susceptibility, etc.

To the best of my knowledge, to date there’s nothing out there like this.

The “.JS” part means that the software is written in JavaScript for the modern browser, Node.js, and Electron. Basically, it runs on almost any device or operating system and yes, there’s a web demo you can try right now (or download the desktop version if you prefer).


A Short History


After building the core game engine and a basic but extensible UI I incorporated Bitcoin, pumped up the software’s peer-to-peer capabilities, and most recently added support for Bitcoin Cash. Because creating a team was the plan from the get-go I spent plenty of time documenting everything along the way.

There’s plenty more in store for CypherPoker.JS but it’s at a point now where I’m not sure I can continue to do it all on my own in a reasonable amount of time.So I’m reaching out to YOU, that person who thinks that this is a pretty kick-ass concept-turned-prototype that they’d like to be associated with. It has the potential to transform the online gaming industry, not just poker. Yes, this is that early stage project you’ve been waiting to join.


“I’m in! What can I do?”


Now, I get that not everyone’s a coder or designer and there are many shoes that need to be filled if this project is going to continue to grow at a healthy rate. Here are some suggestions:

  • Exposure / Hype

Most social networks have a way to bring posts to prominence. These may include sharing, re-posting / cross-posting, liking, upvoting, plussing, starring. or otherwise showing approval or providing additional exposure. There’s a good chance that you can do that you can do one of these things right now and that it’s probably really easy.Also watch for new releases, updates, and upcoming stuff. Share whatever you think is interesting.

  • Developers & Interactive Designers (UX / UI)

Modern (ECMAScript 2017) JavaScript, HTML5 / CSS3, browser, Node.js, Electron. Make GitHub pull requests with any important / useful / cool things. Some suggestions.

  • Players & Testers

Give it a try! Make a free test account (no sign-up required), get some free testnet Bitcoin or Bitcoin Cash and make a deposit (instructions on the site). Once the deposit is confirmed you can transfer it to other accounts, including new ones that you create. Be aware of this outstanding issue if you want to use Bitcoin or Bitcoin Cash proper.

If you find problems, feel free to post them on the subreddit (or DM), tweet about them, or post them directly to the GitHub issues system where they should eventually end up anyway (you can use a free account). I also do email.

  • Evangelism

Spread the gospel of peer-to-peer poker.Get to know its deeper inner truths. Play it, praise it, grow the flock!

  • Donations

Those would help a lot, actually. My laptop’s been acting up and I’ll probably need a new one soon. I also don’t have regular internet access; makes working on this project challenging.

Bitcoin: 18yWpM7CnYox58YMJ2iVa1aJZCs1sufPhg

Bitcoin Cash: bitcoincash:qrgzc6nf6275er7k04tjwauf4ptm9mw9qcaq6fceup

  • Host a Node / Distribute the Code

If you have some web server space or Node.js / PHP+MySQL hosting please consider hosting a node. Limits have been built into the software (e.g. max database size), so you don’t have to worry about it unnecessarily eating up resources. DM or email me for details.

  • Sponsorship

Tournament funding and advertising are two immediate ideas that spring to mind but if you have any other sponsorship ideas I’d be happy to discuss them. Please contact me via DM or email.

  • Quid Pro Quo

Perhaps you need a hand with one of your projects? Maybe you’d like a few guest blog posts? Possibly there’s some other reciprocal arrangement you’d like to propose?Contact me via DM or email to hash out the details.

Filed under: B Sides, Patrick Bay

Union Station Re-re-re-vitalization

Posted on June 16th, 2015 Comments Off on Union Station Re-re-re-vitalization

From 2009:

“…I also had visions of a Hindenburg-like execution that, on top of stretching the project out to a future when the apes have taken over, includes cost overruns that are certain to result in another new tax.”

hindenburg

From today:

“Renovations to Toronto’s Union Station will not be completed until 2017 at the earliest – two years behind schedule and $160-million over the original budget.

The city’s government management committee met Monday to approve an additional $4-million for the project, bringing the total cost of the renovations to $800-million – up from its original $640-million price-tag. And the project, originally expected to reach “substantial completion” in 2015, now won’t be ready until 2017.”

 

Filed under: Dispatches, Patrick Bay, Pictures

Hate to say I said so

Posted on December 1st, 2009 3 Comments

but I said so.

I’m talking, of course, about the Union Station Revitalization project that’s been floating around City Hall since at least last year. There were all sorts of crazy projections floating around about how long it would take to complete the thing, but most of them seemed awfully unrealistic. With no real information or experience of any kind in these matters, I came up with an arbitrary start date of 2011 with completion set for some nebulous time after that. Now, with the project winding its way through the last dusky corridors of City Hall, I’m a little troubled that the number I pulled out of my ass is probably closer to reality than anything the experts were paid exorbitantly for.

Part of the problem is that, along with my far-flung dates, I also had visions of a Hindenburg-like execution that, on top of stretching the project out to a future when the apes have taken over, includes cost overruns that are certain to result in another new tax.

The Star article that finally broke ground on reality mentioned that the construction company that will be doing most of the work will try to be accommodating and will try to “make the hoardings (crowd barriers) as attractive as possible”. I hadn’t been to Union Station for a while so I popped by again to see these attractive new hoardings for myself.

union station, revitalization, project, transit, go, construction, toronto, city, life

So, okay, this is pretty subjective, but I’m not feeling any aesthetic love here. I only bother to mention it because it seems to be an indicator of what is stated versus what is reality, something that, not being realized on this initial small scale, will probably translate to larger misses when the project really gets going. In other words, if this is Vanbot’s version of attractive, their other definitions/time lines/estimates are also likely to be a bit off.

I would be pleased as punch to be proven wrong on this. But really, should we care about temporary barriers? Isn’t what will ultimately be underneath be more important? I’d like to say yes, but if these things will be hanging around for a minimum of 5 years, I don’t think that the word temporary really applies; they will effectively be Union Station for the next half-decade.

The Star article also mentions that part of the move to a new Union Station is to try to make it more of a destination. Two problems with that:

  • Do we really need another place to spend money we don’t have? Having restaurants near to the Rogers Centre makes sense, but how many people are eager to run for the train laden with impulse purchases?
  • The GO concourse is already a destination! People arrive at the station to wait for trains and buses, maybe buy a coffee and a bagel. If not, they’re on their way to work or on their way back home. Chances are that if they’d wanted to do something elsewhere — to shop, for example — they would’ve done so on their way to the station; there’s plenty of opportunity.

union station, concourse, revitalization, project, transit, go, construction, toronto, city, life

Finally, and this is really more me wondering out loud, what types of new retail they could introduce that they don’t already have? Morning caffeine, newspapers, and a bite to eat are all well-represented. There’s currently a liquor store for carry-on entertainment, a bar for the less patient, and a dry cleaner for those on the vomitous tail end of either one. I can’t imagine what could be missing.

union station, revitalization, project, transit, go, concourse, construction, toronto, city, life

You may want to savour these images, it’s unlikely that the station will look like this much longer. Even if, as I suspect, they don’t start work for another couple of years, upkeep on something that is scheduled to be demolished isn’t likely to be a priority. It’s exactly the same reason I have for not cleaning my flat. And I don’t even sell anything (legal) from there!

Filed under: Pictures, Why I'm Right

The Ball giveth, and the Ball taketh away. Then giveth again.

Posted on June 12th, 2009 Comments Off on The Ball giveth, and the Ball taketh away. Then giveth again.

It’s not that I forget about giant red balls or apartment hunting, it’s just that I take a relaxed attitude to writing TCL. Some have described it as procrastination. Others, laziness. Others still, too much banana leaf. Who knows?

Sometimes it’s just because the big red ball needs a day off. That was yesterday. Today, it was up bright and early at the Ryerson campus Podium.

The location was perfect because it allowed the sunlight to hit the ball’s sumptuous, silky surface in the most striking way:

Red Ball Project

Clearly the glorious red vision was designed to attract because, like flies, children were soon buzzing around it, touching it in inappropriate ways:

Red Ball Project

I’m sure you’re asking, did I meet the genius behind this wonder? No, I did not. In fact, I don’t believe he was there. The same guy that had crushed my spirits two days ago was the same guy now in charge of the current display. He had a female assistant, but please trust me when I tell you that neither one of them was the artist. They just weren’t Caucasian enough. No, that guy’s probably sitting on a sailboat lighting cigars with hundred-dollar bills.

But I did get an attractive brochure:

Red Ball Project

I’m gonna wax a bit here and posit my own personal belief as to the ball’s purpose. That would be to highlight sections of the city that you may pass daily but wouldn’t otherwise notice if a giant red ball wasn’t wedged in there. It’s a sort of way of saying, take back your city, explore those strange little alleys between buildings, have another look at something you pass every day. And for God’s sake, you can’t see it from over there! Come closer! Come!

It draws attention. Gets noticed. Not afraid to show it’s ass in public. I mean, that’s the very definition of “photogenic”.

So if this was the artist’s aim, I give it two thumbs up. The ball has shown us sacred ground. Maybe it’ll even be visible from a satellite. Maybe it’s a Google marketing ploy. Who knows? I’m still glad it came and allowed me to bask in it’s glory for one brief moment before I had to trudge off to work.

*sigh*

Oh wait, it’s still around all weekend!

Filed under: B Sides, Pictures