dissent | open software license system using the Bitcoin protocol
kandi X-RAY | dissent Summary
kandi X-RAY | dissent Summary
This project comes from feelings of mine concerning Valve’s Steam system and its related DRM, and for that matter, all DRM sytems. I do not intend to be overly critical, as I own products on multiple platforms described within and as a whole think they do a very good job. Steam is Valve’s video game/software distribution platform. Users can setup an account and then purchase games (or game licenses) and install the software for use on their computer. Quite a few of the titles include the optional DRM aspect which basically verifies that the user does indeed own a legit copy of the game. In many ways this is an improvement from the old system in which companies either didn’t have software protection at all and had their software pirated to the point where Blackbeard himself might blush (Tribes), used CD keys which were easily hacked (Starcraft), or made sure that you had a physical CD in your computer (C&C: Red Alert 2). Consumers have accepted this new system because digital distribution is convenient and cheap, but there are several losses. Because games are tied to a central account, ultimately that authority has complete control, which can surface in issues such as accounts getting banned and losing hundreds of dollars of games, or some long-term situation where the authority puts in place changes which are even more restrictive to the consumer. Additionally, consumers can lose access if the central network becomes unavailable or the company shuts down the system or goes out of business. One other major aspect is this has more or less killed the reselling of games, which although it was never important for computer games, is relevant to consoles and backlash was seen in Microsoft’s short-lived attempt to use such a system for the Xbox One. Valve has recently made their own strides towards a console-like system with Steam on Linux, which is exciting because it could finally eliminate the "Microsoft tax" that computer gamers pay, and allow much needed openness in the console space. However, I have major concerns that even though Valve has mostly been a benevolent dictator, they would very quickly become a monopoly in the space, and monopolies long-term limit innovation. Such a problem is not limited to just Valve. EA has their own DRM/distribution platform, with the same issues. Companies are incentivized to design their own systems because they are able to have control. It is even less convenient for the consumer, because they now have to manage multiple clients for their library of games. Additionally, because these systems aren’t open, there is no way to make a better client. Such systems are also widespread across other digital goods such as books and music. In light of this, I would like to propose a form of DRM which uses the Bitcoin protocol and derived cryptocurrencies and is decentralized (does not rely on a central authority for authentication), transferrable (allows resell of goods), and open (is not properietary and locked-in).
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Check if address is valid .
dissent Key Features
dissent Examples and Code Snippets
Community Discussions
Trending Discussions on dissent
QUESTION
Want to store Getting result of below code in data frame.
Two columns one is the actual name and another is each synonym in the new row.
...ANSWER
Answered 2021-Apr-02 at 10:50This is a possible solution:
QUESTION
I have this code to allow me to place a random image next to the user's cursor using javascript and styled using CSS. I would like images to fall down off the page after a few seconds, my first thought was to animate position but apparently that's not possible?
How could I achieve this? Here is my javascript and CSS code
Javascript
...ANSWER
Answered 2020-Jul-09 at 03:37First create an images array so you can easily access all your images. Whenever you create an image, push it to the array:
QUESTION
Im struggling to add a class to my javascript script (I want to animate my images that are created in javascript to fall off the page) I have used the code element.classList.add("mystyle");
but wherever I place it my javascript no longer works.
The only way I have been able to style the javascript images have been to use *img { in css which is not ideal.
my code used within my html:
...ANSWER
Answered 2020-Jul-08 at 22:40It works fine if you add the class. Try the live demo below, is this what you want?
QUESTION
I have a bunch of projects in my ~/Documents
. I work almost exclusively in python, so these are basically all python projects. Each one, e.g. ~/Documents/foo
has its own virtualenv, ~/Documents/foo/venv
(they're always called venv). Whenever I switch between projects, which is ~10 times a day, I do
ANSWER
Answered 2017-Aug-22 at 07:45Put something like this in your .zshrc
QUESTION
I am trying the Terms Aggregation for the first time and there seems to be an issue with the custom pattern tokenizer I am using.
Here is the Mapping:
...ANSWER
Answered 2020-Feb-18 at 23:19Using your custom tokenizer, the tokens in the text field are "Correspondence", "Meeting Minutes", "Administrative Records", ..etc. So i don't think you need the keyword field.
To make aggregations work on the text field, you'll have to add "fielddata": true
in the mapping. This is by default disabled because aggregations on large text fields are not wanted, but in your case the tokens are exactly the values you want to aggregate on.
here's the simplified configuration
QUESTION
I'm working on a dataframe called 'df'. Two of the columns in 'df' are 'country' and 'dissent'. I need to calculate the average dissent per country. What is the most effective way to iterate through the data frame and calculate the averages by country?
I tried for loops but it does not work and also I don't think it is the most effective way.
...ANSWER
Answered 2019-Jul-10 at 13:07tidyverse
provides the easiest way IMO
QUESTION
We are changing databases, from one that supports an 8 bit int to one that does not. Our code breaks when Liquibase creates a DB that causes jOOQ to generate "short" variables but our code uses byte/Byte - this breaks code signatures.
Rather than recode, somebody suggested that we continue to use the previous database (HSQLDB) to generate the code and it "should" run with the new database. There are dissenting opinions, I cannot find anything definitive beyond intuition and it seems to be counter to what jOOQ was designed for. Has anyone done this successfully?
...ANSWER
Answered 2019-Jun-28 at 07:54There is obviously no absolute yes/no answer to such a question, but there are several solutions/workarounds:
Use the previous database product to generate codeThis will work for a short period of time, e.g. right now, but as you move on, it will be an extremely limiting factor for your schema design. You will continue tailoring your DDL and some other design decisions around what HSQLDB can do, and you won't be able to leverage other features of your new database product. This can be especially limiting when migrating data, as ALTER TABLE
statements are quite different between dialects.
I would recommend this approach only for a very short period of time, e.g. if you can't thoroughly fix this right away.
Use jOOQ's
mechanism to rewrite your data types
jOOQ's code generator allows for rewriting data types prior to loading the meta data of your schema into the code generator. This way, you can pretend your byte
types are TINYINT
on your new database product, even if your new database product doesn't support TINYINT
.
This is a thorough solution that you may want to implement regardless of what product you're using, as it will give you a way to re-define parts of your schema just for jOOQ's code generator, independently of how you're generating your code.
The feature is documented here: https://www.jooq.org/doc/latest/manual/code-generation/codegen-advanced/codegen-config-database/codegen-database-forced-types
This is definitely a more long term solution for your case.
Notice, a future jOOQ will be able to use CHECK
constraints as input meta data to decide whether to apply such a . I would imagine that you will place a
CHECK (my_smallint BETWEEN -128 AND 127)
constraint on every such column, so you could easily recognise which columns to apply the to: https://github.com/jOOQ/jOOQ/issues/8843
Until that feature is available, you can implement it yourself via programmatic code generator configuration: https://www.jooq.org/doc/latest/manual/code-generation/codegen-programmatic/
Or, starting with jOOQ 3.12, by using a SQL expression to produce the regular expression that matches. E.g. in Oracle:
QUESTION
A local checked out git repository should be mirrored to a backup machine, i.e. the .git
dir and the working tree. On this backup machine filesystem snapshots will be taken to allow for easy and instant recovery from arbitrary git mishaps[1].
The obvious solution is to use rsync
and be done, but the regular git gc runs create new and different large .pack files which do not play nice with snapshotting[2]. This gc option can't easily be changed for the source repo(s). Also this would mean rsync
traversing everything in the .git/objects
subfolder, slowing it down.
It would be more elegant to use git
directly (and just pushing all already-commited work to a bare repository would be easy), but that leaves the worktree. The serverside repo config receive.denyCurrentBranch = updateInstead
would not work because the worktree might not be clean.
Would something like git push
'ing, and then rsync
'ing the worktree plus everything in .git
minus the objects
subfolder work? Ideally even an in-progress rebase, merge or cherry-pick in would be replicated. I thought of server side hooks[3] on post-receive
, but these never see the client worktree state.
1: For things where even git reflog doesn't help, such as the machine dying or .git
getting corrupted, or just lazy users.
2: E.g. three ~10 line commits and a gc run resulted in ca. 500MB files being transferred.
3: Serverside hooks mean the repo can't be restored via a plain scp -r
, but that is acceptable.
UPDATE:
Seems impossible, as e.g. jwz already found out in 2015[j], workarounds:
[..], there have been 3½ suggestions here:
Turn off pack files and gc entirely, which will cause small files to accumulate for every future change, and will eventually make things get slow. gc.auto 0, gc.autopacklimit 0.
Set the maximum pack size to a smaller number, so that no pack file gets too large, and subsequent layers of diffs get bundled into smaller pack files. pack.packSizeLimit.
Dissenting opinion on #2: That doesn't do what you think it does, it just slices a single large pack file into N different files with the same bits in them, so you haven't saved anything.
If you already have one gigantic pack file, create a .keep file next to it. New pack files will appear but they will be diffs against that saved one, and thus smaller.
ANSWER
Answered 2019-Jun-03 at 23:15If you want to sync the entire working tree state, you'll need to use some system outside of Git. Git intentionally does not sync the working tree state to other systems and can't be made to do so.
However, having said that, I urge you to reconsider whether you want to sync parts of the working tree such as the index. The index is not made to be transferred between machines because it contains information such as inode numbers and file timestamps. In addition, the security model of a Git repository assumes that the working tree is trusted, and the only safe operations that can be made on an untrusted repository are cloning and fetching.
However, if you really want to do so, you can do the push-and-rsync approach. I personally would take the much simpler approach of just using rsync
and eating the minor performance penalty on repack, since it isn't likely to be that common. By default, git gc
just creates a new pack with the new objects and doesn't repack all of the existing packs unless there are more than gc.autoPackLimit
(default 50) packs, so 98% of the time, you'll just rsync a single new pack and delete the old loose objects, plus whatever's in the working tree.
QUESTION
For some reason, as you can see in my pen, when I hover over a learn more button it adds the details class to all the cards.
I've tried with no luck :
...ANSWER
Answered 2018-Sep-13 at 17:33is this what you are looking for:
$(this).closest('.tilt-card').find('.description-overlay').addClass('desc-hover');
instead of
$('.description-overlay').addClass('desc-hover');
https://codepen.io/anon/pen/zJaPbQ
Your problem is that you are adding class to all elements with css class 'description-overlay', you have to add only to the one inside current tilt-card
QUESTION
How to distinguish between refunded subscription and user-self canceled subscription?
Both shows Expiring date (expiryTimeMillis) and cancellation date (userCancellationTimeMillis) same.
I did not find a single clue to dissent those from each other, is there any?
Thanks in advance.
...ANSWER
Answered 2018-Jul-07 at 17:01The only way to differentiate is keeping a record in the database! I hope google would have a more comprehensive API in the future.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install dissent
You can use dissent like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page