The other day, Ken posted on F/B an online pool, about an "OFFLINE version of BlocklyProp"!!!
Personally I found it awesome!
Does anyone especially from BlocklyProp developing team has any more information?
I would consider it to be a vital next step, followed quickly by a "Blockly Commons" where people could post their own blocks, similar in function to the OBEX.
The team is working towards this and they've got some specific solutions in mind. I'd like to see the same poll for students and then adults. I'd expect the results to be different, where students think cloud-based-everything is the norm yet older people don't accept the requirement of an internet connection for programming a microcontroller.
To the question. For now, they're keeping me at arm's length and on a need-to-know basis. Pretty soon though, I'm expected to receive more information about the schedule, design considerations (i.e., what does it mean for Chromebook users?) and who is building the system.
I'm far from a student of the age of your targeted consumer base. My $0.000002 - having both locally stored data and cloud based data could help teach the youngsters about having a Plan B when connectivity goes away. I found out the hard way several months ago that when Hurricane Irma hit my area and took out most of my cloud access that a Plan B was essential. Specifically, I own a generator repair business and , as you can guess, was overwhelmed with repairs circa Irma. My QuickBooks app has now been converted to the Desktop version. No more sole support on cloud for this guy!
Ken, I'm not at all sure why poll results from students should be given much weight. They are the adult faculty that have to deal with a school's IT issues, not the students. It's all about control, and I'm betting that ceding total control to a remote provider is unpalatable to most clients. Having everything available on a school's network or individual computers is important. I've been there; I know.
Ken, I'm not at all sure why poll results from students should be given much weight. They are the adult faculty that have to deal with a school's IT issues, not the students. It's all about control, and I'm betting that ceding total control to a remote provider is unpalatable to most clients. Having everything available on a school's network or individual computers is important. I've been there; I know.
That said, when everything was working it seems I'd prefer cloud based so students can work from home and on any laptop at the school.
Maybe so. But when I taught robotics with the ActivityBot, I lent each student an Activity Board to take home. I even bought one student a used laptop, since he didn't have a computer at home. To a person, not one ever used the Activity Board outside of class.
So I'm not sure that most students would be motivated enough to work on their Blockly projects at home, even given the opportunity. In any event, there's no reason they couldn't do so via the school's server if Blockly were installed there, since it's just a web access.
It helps to have the option of a local version. Never know when Internet will be down. The more rural the location, the more it matters. Raised in Alaska, I have experience with this, unfortunately.
I do not have a dog in this fight but at first glance my first comment was I wish I didn't need to be connected to use this option for programming.
I have C, SPIN, and PBasic on my home computer and can program anywhere and anytime without being connected, I LOVE that ability and I'm just learning how to program.
Yes - it very important to me to have an OFF - line version of BlocklyProp! I do a LOT of software development work and am always trying different versions and scenarios of software to get the best performance and design features. I really don't want the world to see how I do this. I do not mind sharing the *final* product, but the trials and errors, not so much... Also the on-line stuff really eats up my Internet time, I would rather work alone without the Internet distractions.
We're talking internally about how to make our bare-bones yet functional offline BlocklyProp available to those who are willing to accept it without sophisticated GUI/project management features.
Would you be interested in using it in this capacity?
I would be interested in an offline blocklyprop for sure,
Myself and many of my minions don't always have internet access available,
We like to have the 'disc' so we can play anytime.
Offline, definitely. Otherwise users are depending upon a single point of failure, i.e. the Parallax server, where an an entire class period could be wasted. That's never acceptable. Seriously, Ken, there's nothing to think about here.
And for heaven's sake, please give users the ability to create their own Blockly blocks! Keeping that part in-house is just wrong. It needs to be an open, universally-accessible, universally-configurable system.
We also want an offline version of BlocklyProp. There's no question about that!
At the present moment, we have a solution where users can copy/paste code from BlocklyProp into SimpleIDE. This works, but it's not seamless, fast, and without a little bit of setup. The only hangup in releasing it is time - one of us has to post it. I expected to have it done today, but it looks like early next week.
As for creating your own blocks, you can do this. The whole environment is open source. You can clone the whole system and make it whatever you want. Merging with our code base is a little more complex, though. You can't add them into the main Parallax root without our involvement. We have a couple of steps to get these things to the servers, along with a few internal steps (reference support, some testing) to see that they are supported.
Are there blocks you want, Phil? Just post them in our GitHub and we will make it happen. We'd love to have others involved in the way you described. But give us a break on the management side - if we crack it wide open it will become a bit messy for the target user.
... if we crack it wide open it will become a bit messy for the target user.
So? What's wrong with messy? The OBEX is messy, too. But it's also extremely useful. And there's way more cool stuff in there than there would have been if Parallax had written everything based upon user requests.
Moreover, with hundreds of people writing blocks, instead of just your employees, Blockly will be much richer much quicker.
Okay, how about a driver for the TSL1401 for recognizing edges, widths, positions, etc? Got anybody on staff who wants to tackle that? No? I've worked with that chip for more than 25 years and could do it in a heartbeat, given the right tools.
Ken, you really have to open it up, so that those with specific expertise can contribute.
... if we crack it wide open it will become a bit messy for the target user.
So? What's wrong with messy? The OBEX is messy, too. But it's also extremely useful. And there's way more cool stuff in there than there would have been if Parallax had written everything based upon user requests.
Moreover, with hundreds of people writing blocks, instead of just your employees, Blockly will be much richer much quicker.
Okay, how about a driver for the TSL1401 for recognizing edges, widths, positions, etc? Got anybody on staff who wants to tackle that? No? I've worked with that chip for more than 25 years and could do it in a heartbeat, given the right tools.
Ken, you really have to open it up, so that those with specific expertise can contribute.
-Phil
You know that BlocklyProp at present runs on our AWS servers. There's a GitHub environment and staging server, so making changes requires our team to deploy files. There are databases with COPPA-protected data, too.
The place we can plug in everybody who wants to contribute is right here https://github.com/parallaxinc/BlocklyProp. It's just a bit upstream from where you might like to participate. You can post issues, code blocks, interact with the other half-dozen people who are actively working on the system. Then, as you pointed out, we can make the system richer much faster.
There are other considerations towards block creation, too. There's the hardware itself, which we would ideally sell unless it's so widely popular and commonly available. Customers need to be able to connect the hardware, too, to a FLiP or PAB. Educational customers want to be able to buy the hardware we're BlocklyProping. Else we might as well direct them to ArduBlocks, which has a mess of shield support they get from different places.
You also have to want to do this in the language we're using. Because of the popularity of Spin among forum members I foresee this being a problem for some. Blockly is based on our C code.
We want the help. I just want to be sure that the cloud infrastructure, C language, and desire to sell the hardware we BlocklyProp is understood.
TSL1401? Would love to see that happen!
You may not like any of this. But this is also the way it is. This program isn't designed to block people out from contributing, nor does that serve our business. However, Parallax's free-wandering budget for research oriented activities has been spent 12x over so this activity must be managed so we can survive as a company.
The place we can plug in everybody who wants to contribute is right here https://github.com/parallaxinc/BlocklyProp. It's just a bit upstream from where you might like to participate. You can post issues, code blocks, interact with the other half-dozen people who are actively working on the system. Then, as you pointed out, we can make the system richer much faster.
Went there. Couldn't find any C code for individual blocks. It'd be nice to see an example of a block somewhere, say, for the standard servo.
The blocks style, shape, function, colors and behavior are coded in Javascript. Sometimes there's a C library behind the block, other times it's just using functions in Simple Tools library that nearly resemble PBASIC. The C generated by the blocks is usually very small. To get an idea, build a little project and take a look at the code view.
Start a new thread about the TSL1401, the interface to it, and I'll get Matt to jump in and give some direction about how to best achieve this. If we need a library to talk to it that's really the only big hurdle.
There's a learning curve, but it's it not steep. In the meantime take a look at the Block Factory. While we don't use Block Factory-generated code, it gives you a good idea about how you might use blocks to interface to a sensor.
One of the things I liked about 12Blocks, was the ability to create my own blocks from OBEX objects. Is this not possible right now with Blockly? Am I reading this thread correctly?
I would consider it to be a vital next step, followed quickly by a "Blockly Commons" where people could post their own blocks, similar in function to the OBEX.
-Phil
Totally in agreement there! One question however, how would users go about creating their own blocks?
One of the things I liked about 12Blocks, was the ability to create my own blocks from OBEX objects. Is this not possible right now with Blockly? Am I reading this thread correctly?
It's a multi-step process. First we need to port the desired Spin code to C, then create a library, and then a block. You can contribute (it's an open source project) or tell us what you envision by making a feature request here https://github.com/parallaxinc/BlocklyProp
So far, this series of steps scares off people. It shouldn't, though, as the result has been well-worth the effort and our development team has a half-dozen people who know how to help.
... You can contribute (it's an open source project) ...
Ken, I have to confess: I'm really confused. What, exactly, in terms of code, does a person contribute; and what happens to that code -- behind the curtain, as it were -- to turn it into a bona fide Blockly block? And when do you think that curtain can be pulled back so all of us can contribute start-to-finish? And if/when we can, where do we register the blocks we've created?
... You can contribute (it's an open source project) ...
Ken, I have to confess: I'm really confused. What, exactly, in terms of code, does a person contribute; and what happens to that code -- behind the curtain, as it were -- to turn it into a bona fide Blockly block? And when do you think that curtain can be pulled back so all of us can contribute start-to-finish? And if/when we can, where do we register the blocks we've created?
Thanks,
-Phil
What curtain do you speak of, theatre-goer? The code base is entirely open, at least the front browser-side of things. What's unique about this system is that it runs in the cloud and has associated databases to support it. That latter part is COPPA-compliant and secure, because of the audience we're serving and not part of the GitHub we've listed above.
Most all of this runs in your browser and it's now possible to run it entirely offline, too. Looking at those files might be an easier way to understand the whole interaction. If you'd like, I can send you instructions on how to set it up offline. Looking into this might help you a bit (I'm no programmer, as you know).
I suppose for the full "curtain reveal" we'd need to explain how to code for a block. Here's how I see one can participate in the present design most efficiently:
(a) Identify what you want to do. Make a GitHub issue for it, so we can help the goal get achieved.
(b) If your concept is coded in Spin/ASM, it will be run through Spin2Cpp so it can live in the BlocklyProp system (we don't mix Spin and C). Sometimes a library is needed.
(c) Define how the block should look and work. Model it in the Block Factory so you have an example. Share that back to the GitHub issue you created.
(d) We (or contributors) can code the Block in JavaScript and make it part of the system. We also create a reference guide notation for it at the same time.
The current approach requires us to some extent, as you can see. More actors are welcome in the theatre, however.
What would you like to see be part of Blockly? Maybe we should start there.
Is my reply useful or useless? Tell me what you think - I have elephant skin!
If anybody else wants to configure their computer for offline BlocklyProp just e-mail me for instructions and downloads kgracey@parallax.com.
It works perfectly reliably, but the setup and use is totally unsupported until we get a formal installer to tidy up the little modifications you need to make (2-3 of them) for this to run on a PC.
If anybody else wants to configure their computer for offline BlocklyProp just e-mail me for instructions and downloads kgracey@parallax.com.
It works perfectly reliably, but the setup and use is totally unsupported until we get a formal installer to tidy up the little modifications you need to make (2-3 of them) for this to run on a PC.
I' would like to try the offline BlocklyProp. As far for GitHub I need some time to understand the all concept.... At least I only need an offline version of blocKlyProp to give me more freedom to work my projects without the need of the internet...
Ken I'll send you an e-mail to send me the setup instructions.
Comments
-Phil
To the question. For now, they're keeping me at arm's length and on a need-to-know basis. Pretty soon though, I'm expected to receive more information about the schedule, design considerations (i.e., what does it mean for Chromebook users?) and who is building the system.
Ken Gracey
-Phil
+1.
Also once a month Comcast can go down out here. Sometimes more. Would stink to have to cancel a class because Comcast was down.
That said, when everything was working it seems I'd prefer cloud based so students can work from home and on any laptop at the school.
Maybe so. But when I taught robotics with the ActivityBot, I lent each student an Activity Board to take home. I even bought one student a used laptop, since he didn't have a computer at home. To a person, not one ever used the Activity Board outside of class.
So I'm not sure that most students would be motivated enough to work on their Blockly projects at home, even given the opportunity. In any event, there's no reason they couldn't do so via the school's server if Blockly were installed there, since it's just a web access.
-Phil
I have C, SPIN, and PBasic on my home computer and can program anywhere and anytime without being connected, I LOVE that ability and I'm just learning how to program.
Would you be interested in using it in this capacity?
Ken Gracey
Myself and many of my minions don't always have internet access available,
We like to have the 'disc' so we can play anytime.
-Tommy
And for heaven's sake, please give users the ability to create their own Blockly blocks! Keeping that part in-house is just wrong. It needs to be an open, universally-accessible, universally-configurable system.
-Phil
At the present moment, we have a solution where users can copy/paste code from BlocklyProp into SimpleIDE. This works, but it's not seamless, fast, and without a little bit of setup. The only hangup in releasing it is time - one of us has to post it. I expected to have it done today, but it looks like early next week.
As for creating your own blocks, you can do this. The whole environment is open source. You can clone the whole system and make it whatever you want. Merging with our code base is a little more complex, though. You can't add them into the main Parallax root without our involvement. We have a couple of steps to get these things to the servers, along with a few internal steps (reference support, some testing) to see that they are supported.
Are there blocks you want, Phil? Just post them in our GitHub and we will make it happen. We'd love to have others involved in the way you described. But give us a break on the management side - if we crack it wide open it will become a bit messy for the target user.
Ken Gracey
Moreover, with hundreds of people writing blocks, instead of just your employees, Blockly will be much richer much quicker.
Okay, how about a driver for the TSL1401 for recognizing edges, widths, positions, etc? Got anybody on staff who wants to tackle that? No? I've worked with that chip for more than 25 years and could do it in a heartbeat, given the right tools.
Ken, you really have to open it up, so that those with specific expertise can contribute.
-Phil
You know that BlocklyProp at present runs on our AWS servers. There's a GitHub environment and staging server, so making changes requires our team to deploy files. There are databases with COPPA-protected data, too.
The place we can plug in everybody who wants to contribute is right here https://github.com/parallaxinc/BlocklyProp. It's just a bit upstream from where you might like to participate. You can post issues, code blocks, interact with the other half-dozen people who are actively working on the system. Then, as you pointed out, we can make the system richer much faster.
There are other considerations towards block creation, too. There's the hardware itself, which we would ideally sell unless it's so widely popular and commonly available. Customers need to be able to connect the hardware, too, to a FLiP or PAB. Educational customers want to be able to buy the hardware we're BlocklyProping. Else we might as well direct them to ArduBlocks, which has a mess of shield support they get from different places.
You also have to want to do this in the language we're using. Because of the popularity of Spin among forum members I foresee this being a problem for some. Blockly is based on our C code.
We want the help. I just want to be sure that the cloud infrastructure, C language, and desire to sell the hardware we BlocklyProp is understood.
TSL1401? Would love to see that happen!
You may not like any of this. But this is also the way it is. This program isn't designed to block people out from contributing, nor does that serve our business. However, Parallax's free-wandering budget for research oriented activities has been spent 12x over so this activity must be managed so we can survive as a company.
Ken Gracey
Went there. Couldn't find any C code for individual blocks. It'd be nice to see an example of a block somewhere, say, for the standard servo.
-Phil
Start a new thread about the TSL1401, the interface to it, and I'll get Matt to jump in and give some direction about how to best achieve this. If we need a library to talk to it that's really the only big hurdle.
There's a learning curve, but it's it not steep. In the meantime take a look at the Block Factory. While we don't use Block Factory-generated code, it gives you a good idea about how you might use blocks to interface to a sensor.
There's room to participate.
Ken Gracey
It's a multi-step process. First we need to port the desired Spin code to C, then create a library, and then a block. You can contribute (it's an open source project) or tell us what you envision by making a feature request here https://github.com/parallaxinc/BlocklyProp
So far, this series of steps scares off people. It shouldn't, though, as the result has been well-worth the effort and our development team has a half-dozen people who know how to help.
Ken Gracey
Thanks,
-Phil
What curtain do you speak of, theatre-goer? The code base is entirely open, at least the front browser-side of things. What's unique about this system is that it runs in the cloud and has associated databases to support it. That latter part is COPPA-compliant and secure, because of the audience we're serving and not part of the GitHub we've listed above.
Most all of this runs in your browser and it's now possible to run it entirely offline, too. Looking at those files might be an easier way to understand the whole interaction. If you'd like, I can send you instructions on how to set it up offline. Looking into this might help you a bit (I'm no programmer, as you know).
I suppose for the full "curtain reveal" we'd need to explain how to code for a block. Here's how I see one can participate in the present design most efficiently:
(a) Identify what you want to do. Make a GitHub issue for it, so we can help the goal get achieved.
(b) If your concept is coded in Spin/ASM, it will be run through Spin2Cpp so it can live in the BlocklyProp system (we don't mix Spin and C). Sometimes a library is needed.
(c) Define how the block should look and work. Model it in the Block Factory so you have an example. Share that back to the GitHub issue you created.
(d) We (or contributors) can code the Block in JavaScript and make it part of the system. We also create a reference guide notation for it at the same time.
The current approach requires us to some extent, as you can see. More actors are welcome in the theatre, however.
What would you like to see be part of Blockly? Maybe we should start there.
Is my reply useful or useless? Tell me what you think - I have elephant skin!
Ken Gracey
It works perfectly reliably, but the setup and use is totally unsupported until we get a formal installer to tidy up the little modifications you need to make (2-3 of them) for this to run on a PC.
-Phil
I' would like to try the offline BlocklyProp. As far for GitHub I need some time to understand the all concept.... At least I only need an offline version of blocKlyProp to give me more freedom to work my projects without the need of the internet...
Ken I'll send you an e-mail to send me the setup instructions.
Need for a student email to set up an account