l8orre
Legendary
Offline
Activity: 1187
Merit: 1019
|
 |
March 06, 2014, 11:12:32 AM Last edit: March 06, 2014, 11:51:14 AM by l8orre |
|
FreeRider beta0.1 released:
git clone https://github.com/l8orre/FreeRider
cd FreeRider
./nxtFreeRider.py
Also available at:
https://www.quicknxt.com/FreeRider
I believe that nxtFreeRider will make a valuable and distinct contribution to the nxt clients ecosystem.
Features/Attributes:
- python3/PyQt4: fully open source, code inspection extremely easy rapid development/modification possible by anybody, - script language: no binary that must either be trusted or compiled from source - developer tool: includes api access window for testing, new api calls can be added very fast - using QThreadpool, query threads can be used for NRS backend load testing - Focus on Asset Exchange - python provides scipy: scipy has become the single most powerful and versatile scientific computation environment available - can be used as a tool to analyse node behaviour and counteract malicious attacks on the network.
The availability of scipy provides a unique feature that no other client has - I have the impression that this aspect is a bit underrated so far.
|
|
|
|
|
BitcoinForumator
Legendary
Offline
Activity: 1120
Merit: 1000
|
 |
March 06, 2014, 11:13:29 AM |
|
|
|
|
|
|
Damelon
Legendary
Offline
Activity: 1092
Merit: 1010
|
 |
March 06, 2014, 11:13:53 AM |
|
If you´ve read my PM, I am trying to help you build a core dev team...
Yes, I need to think about how this should be done. Before the source was public, the problem was how to decide who is trustworthy. Now that it is open, how do we decide who is good enough? Companies conduct technical interviews. Those will filter out the completely ignorant, but for more experienced people it becomes difficult to judge who is better. I am also not confident in my own skills as an interviewer, and also some good people perform bad at interviews because of the stress and pressure to perform. Especially for an open source project, I don't feel doing interviews is the right approach. For paid developers, we could consider trial projects, which they would do on their own fork of the repository, and if at the end we like the code and integrate it into the main repository, we accept them as paid developers. This would mean they would have to spend a few weeks without pay at first. Or, we can take the risk and do it as a one month paid contract, with the option of making it permanent. This would be something the NXTtechdevfund committee should discuss. I would need to research how other open source projects decide who to accept and trust, e.g. how the linux kernel development is organized, and see if we can adopt their project management practices. In terms of skill set, being a very good Java developer is the only requirement. The code does not depend strongly on any specific tool or library. We use a database, so some familiarity with relational database and SQL is needed, but there are enough areas of the code one can work on without touching the database at first. We also use servlets and Jetty, so again familiarity with servlets and the http protocol would be helpful, but most Java developers already have that. Good object-oriented design skills are essential. So is writing clean and maintainable code. For developers with main background in languages other than Java, I can tell immediately that Java is not their native language - I have seen lots of Java code that reads like C. The original BCNext code was very foreign too, so I had to rewrite lots of it. So for somebody coming from C/C++ background, if this is going to be their first Java project, they would need to learn a lot, so that the code they add actually reads like Java. In addition to Java developers, and in fact much more urgently, we need a good cryptographer. This person doesn't even need to be that fluent in Java, the language background wouldn't matter (well, he should at least be able to read and understand the Java code). But I don't have much cryptography background myself, so this is an area where we currently lack skills, especially after the departure of BCNext. Jean Luc, I want to thank you for this. It helps to know that we are looking for good people to get on board for the future development. It also helps to know that you will be staying on board so there is no knowledge leak. And thanks to mcjavar for organising this!
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
 |
March 06, 2014, 11:14:05 AM |
|
If you´ve read my PM, I am trying to help you build a core dev team...
Yes, I need to think about how this should be done. Before the source was public, the problem was how to decide who is trustworthy. Now that it is open, how do we decide who is good enough? Companies conduct technical interviews. Those will filter out the completely ignorant, but for more experienced people it becomes difficult to judge who is better. I am also not confident in my own skills as an interviewer, and also some good people perform bad at interviews because of the stress and pressure to perform. Especially for an open source project, I don't feel doing interviews is the right approach. For paid developers, we could consider trial projects, which they would do on their own fork of the repository, and if at the end we like the code and integrate it into the main repository, we accept them as paid developers. This would mean they would have to spend a few weeks without pay at first. Or, we can take the risk and do it as a one month paid contract, with the option of making it permanent. This would be something the NXTtechdevfund committee should discuss. I would need to research how other open source projects decide who to accept and trust, e.g. how the linux kernel development is organized, and see if we can adopt their project management practices. In terms of skill set, being a very good Java developer is the only requirement. The code does not depend strongly on any specific tool or library. We use a database, so some familiarity with relational database and SQL is needed, but there are enough areas of the code one can work on without touching the database at first. We also use servlets and Jetty, so again familiarity with servlets and the http protocol would be helpful, but most Java developers already have that. Good object-oriented design skills are essential. So is writing clean and maintainable code. For developers with main background in languages other than Java, I can tell immediately that Java is not their native language - I have seen lots of Java code that reads like C. The original BCNext code was very foreign too, so I had to rewrite lots of it. So for somebody coming from C/C++ background, if this is going to be their first Java project, they would need to learn a lot, so that the code they add actually reads like Java. In addition to Java developers, and in fact much more urgently, we need a good cryptographer. This person doesn't even need to be that fluent in Java, the language background wouldn't matter (well, he should at least be able to read and understand the Java code). But I don't have much cryptography background myself, so this is an area where we currently lack skills, especially after the departure of BCNext. Thank you very much for your detailed answer!"For paid developers, we could consider trial projects, which they would do on their own fork of the repository, and if at the end we like the code and integrate it into the main repository, we accept them as paid developers. This would mean they would have to spend a few weeks without pay at first. Or, we can take the risk and do it as a one month paid contract, with the option of making it permanent. This would be something the NXTtechdevfund committee should discuss. I would need to research how other open source projects decide who to accept and trust, e.g. how the linux kernel development is organized, and see if we can adopt their project management practices." Give the applicant a real life scenario to work on. Something that has to be done for Nxt. A small part of a bigger task. So you can assess if he/she is good enough to be in the core dev team."In addition to Java developers, and in fact much more urgently, we need a good cryptographer." Is that the same msin is working on with the review of the code? Or we need a cryptographer in our core dev team? Do you (or anyone else) have a suggestion whom we should approach?I would be happy to come up with test Java projects for someone else to do  I could pay some amount of NXT upfront to reduce the risk for the new applicant, as long as we have reason to believe that he can do the job. Then I will need the Techcommittee to deal with any permanent arrangements and completion bounties. Probably a good idea to have a good cryptographer on retainer or at least halftime. If the community can provide adequate testing, then that frees up more funds to pay the cryptographer. I dont think it has to be a big name guy, as long as he can do the crypto math competently, that is the key. Someone who can actually understand stuff like https://asktom.cf/index.php?topic=277389.0James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
 |
March 06, 2014, 11:15:10 AM |
|
Thanks Wesleyh! It looks great.
What I notice at start is the black bar at the bottom. It's not well designed like the rest of the screen. (black and white)
The second thing is; "Downloading blockchain.." I want to see how much I already have downloaded so I can estimate how much I still have to wait.
It would be better if you can manage to add Estimate download time, or '5 minutes left' to download the blockchain.. Something like that. Because now I don't know if I really downloading. Maybe it's stuck somewhere at a block.
Yes, black bar will be redesigned. Or removed. About blockchain downloading, I don't think there is a way to know how long to go still. I guess I could compare last block to current time though, and do an approximation based on 1 block per minute? I can help with completion time estimate algos. I will PM you James
|
|
|
|
|
Eadeqa
|
 |
March 06, 2014, 11:16:13 AM |
|
Well, you can do everything whilst it's downloading the blockchain, of course you'll only get your balance once it reaches the correct block. It opens NRS in the background, yes, locally.
Does it shut down NRS when you close it? Yes. Cool. You should add some kind of random password generator for creating new accounts, and then it should be distributed with all new NRS releases as a default client
|
|
|
|
|
wesleyh
|
 |
March 06, 2014, 11:17:17 AM |
|
Well, you can do everything whilst it's downloading the blockchain, of course you'll only get your balance once it reaches the correct block. It opens NRS in the background, yes, locally.
Does it shut down NRS when you close it? Yes. Cool. You should add some kind of random password generator for creating new accounts, and then it should be distributed with all new NRS releases as a default client Not sure if there is a good and secure javascript.random available - However if you open the app and choose register new account, (new users will probably do this although they could just login), then it requires special characters, minimum length, etc.
|
|
|
|
|
|
Jean-Luc
|
 |
March 06, 2014, 11:17:38 AM |
|
I have also sent the html interface to jean-luc, hopefully it will be in the next version (it is in this NxtWallet.exe already)
I will not have time to make another release until Sunday at best. For now, people should install Wesley's client manually.
|
|
|
|
|
Fatih87SK
|
 |
March 06, 2014, 11:19:26 AM |
|
Thanks Wesleyh! It looks great.
What I notice at start is the black bar at the bottom. It's not well designed like the rest of the screen. (black and white)
The second thing is; "Downloading blockchain.." I want to see how much I already have downloaded so I can estimate how much I still have to wait.
It would be better if you can manage to add Estimate download time, or '5 minutes left' to download the blockchain.. Something like that. Because now I don't know if I really downloading. Maybe it's stuck somewhere at a block.
Yes, black bar will be redesigned. Or removed. About blockchain downloading, I don't think there is a way to know how long to go still. I guess I could compare last block to current time though, and do an approximation based on 1 block per minute? I can help with completion time estimate algos. I will PM you James Thanks! It doesn't need to be perfect. An estimate is fine by me!
|
|
|
|
abctc
Legendary
Offline
Activity: 1820
Merit: 1040
|
 |
March 06, 2014, 11:21:04 AM |
|
Could somebody sent TestNxt to the ....
- if someone needs testNXTs - ask them here: https://forums.nxtcrypto.org/viewtopic.php?f=2&t=832&p=4237#p4237
|
██████████████████████████████████████████████████ ████████████████████████████████████████████████████ ██████████████████████████████████████████████████████ ████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████████ ██████████████████████████████████████████████████████████████████ ████████████████████████████████████████████████████████████████████ | , the Next platform. Magis quam Moneta (More than a Coin) |
|
|
|
pr65536
Newbie
Offline
Activity: 4
Merit: 0
|
 |
March 06, 2014, 11:21:22 AM |
|
First of all, Keep up with the great work!
I'm a newbie here but I would like to give you my two cents... I believe that NXT has all the potential to become the next big thing. I see a great idea and I see great people working on it. I see also a great community that is forming around it. The only problem is that for new people like me is very difficult to follow and join. There is this huge megathread that is growing faster than my reading capabilites. In this thread there is everything: from technical development discussions, to new software announcements, newbie opinions, complaints, philosophical discussions and everything else... This is great, but frankly speaking, is not optimal. It end up that people just trow in it their opinion but without listening really at what other are saying.
My practical proposal: why not to split this thread in different threads? One for the technical/developers, one for the marketing, one for the newbie, etc.?
Or maybe there are already some different channels? (in this case, please point out where) Cheers
|
|
|
|
|
|
Eadeqa
|
 |
March 06, 2014, 11:22:07 AM |
|
Well, you can do everything whilst it's downloading the blockchain, of course you'll only get your balance once it reaches the correct block. It opens NRS in the background, yes, locally.
Does it shut down NRS when you close it? Yes. Cool. You should add some kind of random password generator for creating new accounts, and then it should be distributed with all new NRS releases as a default client Not sure if there is a good and secure javascript.random available - However if you open the app and choose register new account, (new users will probably do this although they could just login), then it requires special characters, minimum length, etc. You can use random mouse movement to create pretty secure password. Copy their code https://www.bitaddress.org
|
|
|
|
|
wesleyh
|
 |
March 06, 2014, 11:22:13 AM |
|
Or like Bitcoin wallets with a green bar that shows the progress of downloading the blockchain.
Thanks!
Don't get offended or something. I'm just being a critical end user. Great work!
Not offended at all, I need and appreciate the feedback 
|
|
|
|
|
|
instacalm
|
 |
March 06, 2014, 11:22:22 AM |
|
My practical proposal: why not to split this thread in different threads? One for the technical/developers, one for the marketing, one for the newbie, etc.?
Hi pr65536, https://forums.nxtcrypto.org
|
|
|
|
|
|
wesleyh
|
 |
March 06, 2014, 11:23:31 AM |
|
thanks, will check it out.
|
|
|
|
|
|
|
|
wesleyh
|
 |
March 06, 2014, 11:26:53 AM |
|
Gotta go, be back in 8 hours or tomorrow. Keep feedback, bug reports, etc coming. You can also PM me.
|
|
|
|
|
verymuchso
Sr. Member
  
Offline
Activity: 421
Merit: 250
HEAT Ledger
|
 |
March 06, 2014, 11:30:12 AM |
|
I did my research on random string generator libraries, it seems apache RandomStringUtils is not compromised.
Why aren't you using SecureRandom random = new SecureRandom()? Simpler version from web char[] allowedCharacters = {'a','b','c','1','2','3','4'}; SecureRandom random = new SecureRandom(); StringBuffer password = new StringBuffer(); for(int i = 0; i < PASSWORD_LENGTH; i++) { password.append(allowedCharacters[ random.nextInt(allowedCharacters.length) ]); } I don't believe I know better than the people from Apache who made that library. That library is used in 1000s of production systems. You should not reinvent the wheel. You are right about the difference between SecureRandom and Random, in the code I posted it does however not make sense to use SercureRandom. If you believe it does please explain why it does make sense in the code I posted. http://www.docjar.com/html/api/org/apache/commons/lang/RandomStringUtils.java.htmlThey use java.util.Random Where do you see SercureRandom used by RandomStringUtils? I did not say they used SecureRandom in RandomStringUtils. What I did was look for ways to generate the safest possible passphrases and RandomStringUtils was mentioned and seemed to be used the most. It comes as a surprise that they do not use SecureRandom, if this in fact is unsecure this would mean that numerous production systems are at risk, which might even be the case who knows. You started your argument by saying Random should not be used, since Random was used in the piece of code I posted I assumed you were talking about the random number between 70 and 90 for the password length, for which it makes no sense to use SecureRandom. I do believe Apache should use SecureRandom. Looking at my code I also believe the seed string of characters used should not be a fixed string, it should be random as should your 'allowedCharacters' variable in the sample you posted. The site where you can generate a passphrase with your mouse is really cool, it does however not work for people without a mouse.
|
|
|
|
|
Jean-Luc
|
 |
March 06, 2014, 11:35:28 AM |
|
You are right. Maybe he should directly call the method that also takes a Random as a parameter, and pass it his own instance of a SecureRandom.
|
|
|
|
martismartis
Legendary
Offline
Activity: 1161
Merit: 1005
|
 |
March 06, 2014, 11:38:30 AM |
|
Hi, I'm not registered in forums.nxtcrypto.org , here is my church, where I get all information I need  Still need some test NXT to 13965125640011039998
|
|
|
|
|
|