|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On November 04 2016 08:11 billy5000 wrote: One of the things that bothers me is how I should break my code into functions, objects, etc. Basically how I should design my code. Not necessarily design patterns per se, but refactoring and OOP in general. Is there a good book or article that touches this topic? For the most part, I know how to do it, but I just don't know the best way to do it.
Not sure what else there is other than learning from experience.
https://blog.codinghorror.com/code-smells/
My personal one is avoid keeping state as much as possible. Avoid global state, avoid state variables, minimize member variables, prefer method parameters.
|
It comes with experience I guess.
|
On November 04 2016 08:11 billy5000 wrote: One of the things that bothers me is how I should break my code into functions, objects, etc. Basically how I should design my code. Not necessarily design patterns per se, but refactoring and OOP in general. Is there a good book or article that touches this topic? For the most part, I know how to do it, but I just don't know the best way to do it. On top of the things Blisse said I would suggest you try to break your code down into closed systems that work on their own. Ttry to make things as reuseable and more generic (but not too generic or you will never get done).
Break big GUI's into smaller components that work on their own and are interchangeable. Break big structures into substructures that can be used in different parts of the program, etc. The programming patterns really help with this. The observer pattern allows you to create a very generic way of communication between subsystems without the need to define much beforehand. The strategy pattern helps with enhancing a subsystem without the need to change the code, etc.
|
Could you guys point me to some resources where you can learn a bit more advanced Python?
I don't need to learn the basics and I don't want to waste my time on more courses which make you start with hello world programs, go through how loops work and all of that.
I would also like to know why is using classes within classes so prominent in Python...
|
|
On November 04 2016 17:56 Manit0u wrote: I would also like to know why is using classes within classes so prominent in Python... It is?
|
I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing.
when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content?
I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page
|
On November 04 2016 18:20 Prillan wrote:Show nested quote +On November 04 2016 17:56 Manit0u wrote: I would also like to know why is using classes within classes so prominent in Python... It is?
Whenever I view sources for some open source projects I see subclasses in almost all of them. And multiple classes per file is pretty much standard too.
|
If you interpret files as modules having several classes per file isn't so strange.
|
|
On November 04 2016 19:21 Nesserev wrote:Show nested quote +On November 04 2016 18:37 mantequilla wrote:I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing. when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content? I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page  There's usually a lot of content on a website that the owner of a website should be able to change without the intervention of any web developer; a CMS provides the interface that allows him/her to do this. Does it make sense that a web developer has to be contacted every time you want to add a post on a blog, change the banner of your website, etc.? - No, so that's why you use a CMS. Not just for simple websites, but for almost any website. If the question to "should the owner be able to change this?", you need a CMS. And it's not just for the owner, even the developer can benefit; sometimes it's the most convenient to hook something up to the CMS beforehand, instead of manually changing it in the HTML later on.
I know-understand when a cms is needed, that wasn't the thing I was trying to ask. I wanted to ask how much programming is involved with me. Am I supposed to write code regularly, or is it a rare task only needed with advanced cases? I never worked with them so have no idea what the usual workflow is :/
|
On November 04 2016 20:00 mantequilla wrote:Show nested quote +On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 mantequilla wrote:I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing. when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content? I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page  There's usually a lot of content on a website that the owner of a website should be able to change without the intervention of any web developer; a CMS provides the interface that allows him/her to do this. Does it make sense that a web developer has to be contacted every time you want to add a post on a blog, change the banner of your website, etc.? - No, so that's why you use a CMS. Not just for simple websites, but for almost any website. If the question to "should the owner be able to change this?", you need a CMS. And it's not just for the owner, even the developer can benefit; sometimes it's the most convenient to hook something up to the CMS beforehand, instead of manually changing it in the HTML later on. I know-understand when a cms is needed, that wasn't the thing I was trying to ask. I wanted to ask how much programming is involved with me. Am I supposed to write code regularly, or is it a rare task only needed with advanced cases? I never worked with them so have no idea what the usual workflow is :/
It depends on client demands. If you're not OK with just using some existing CMS and its out-of-the-box features than you can expect plenty of coding on your part to incorporate the necessary stuff into the CMS. But usually after you ship it you rarely have to touch it.
The programming work involved can be anything from a couple of days to a couple of months.
On November 04 2016 19:21 Nesserev wrote:Show nested quote +On November 04 2016 18:37 Manit0u wrote:On November 04 2016 18:20 Prillan wrote:On November 04 2016 17:56 Manit0u wrote: I would also like to know why is using classes within classes so prominent in Python... It is? Whenever I view sources for some open source projects I see subclasses in almost all of them. And multiple classes per file is pretty much standard too. Wait, you used 'classes within classes' first, then 'subclasses' ... what is it?  Are you talking about Java-esque inner/nested classes?
I was thinking about nested classes:
class SomeClass(self): class OtherClass(self):
|
On November 04 2016 20:00 mantequilla wrote:Show nested quote +On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 mantequilla wrote:I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing. when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content? I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page  There's usually a lot of content on a website that the owner of a website should be able to change without the intervention of any web developer; a CMS provides the interface that allows him/her to do this. Does it make sense that a web developer has to be contacted every time you want to add a post on a blog, change the banner of your website, etc.? - No, so that's why you use a CMS. Not just for simple websites, but for almost any website. If the question to "should the owner be able to change this?", you need a CMS. And it's not just for the owner, even the developer can benefit; sometimes it's the most convenient to hook something up to the CMS beforehand, instead of manually changing it in the HTML later on. I know-understand when a cms is needed, that wasn't the thing I was trying to ask. I wanted to ask how much programming is involved with me. Am I supposed to write code regularly, or is it a rare task only needed with advanced cases? I never worked with them so have no idea what the usual workflow is :/
I'm not sure I understand the question right. If your job is to build a CMS, it will involve a fair amount of programming (how much depends on lots and lots of other things in your project). If your job is to update the website using the CMS then it *should* require no programming at all. It probably won't even require any CSS/HTML.
|
On November 04 2016 22:29 Manit0u wrote:Show nested quote +On November 04 2016 20:00 mantequilla wrote:On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 mantequilla wrote:I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing. when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content? I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page  There's usually a lot of content on a website that the owner of a website should be able to change without the intervention of any web developer; a CMS provides the interface that allows him/her to do this. Does it make sense that a web developer has to be contacted every time you want to add a post on a blog, change the banner of your website, etc.? - No, so that's why you use a CMS. Not just for simple websites, but for almost any website. If the question to "should the owner be able to change this?", you need a CMS. And it's not just for the owner, even the developer can benefit; sometimes it's the most convenient to hook something up to the CMS beforehand, instead of manually changing it in the HTML later on. I know-understand when a cms is needed, that wasn't the thing I was trying to ask. I wanted to ask how much programming is involved with me. Am I supposed to write code regularly, or is it a rare task only needed with advanced cases? I never worked with them so have no idea what the usual workflow is :/ It depends on client demands. If you're not OK with just using some existing CMS and its out-of-the-box features than you can expect plenty of coding on your part to incorporate the necessary stuff into the CMS. But usually after you ship it you rarely have to touch it. The programming work involved can be anything from a couple of days to a couple of months. Show nested quote +On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 Manit0u wrote:On November 04 2016 18:20 Prillan wrote:On November 04 2016 17:56 Manit0u wrote: I would also like to know why is using classes within classes so prominent in Python... It is? Whenever I view sources for some open source projects I see subclasses in almost all of them. And multiple classes per file is pretty much standard too. Wait, you used 'classes within classes' first, then 'subclasses' ... what is it?  Are you talking about Java-esque inner/nested classes? I was thinking about nested classes: class SomeClass(self): class OtherClass(self):
I can't remember ever having seen that in python.
|
On November 04 2016 22:29 Manit0u wrote:Show nested quote +On November 04 2016 20:00 mantequilla wrote:On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 mantequilla wrote:I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing. when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content? I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page  There's usually a lot of content on a website that the owner of a website should be able to change without the intervention of any web developer; a CMS provides the interface that allows him/her to do this. Does it make sense that a web developer has to be contacted every time you want to add a post on a blog, change the banner of your website, etc.? - No, so that's why you use a CMS. Not just for simple websites, but for almost any website. If the question to "should the owner be able to change this?", you need a CMS. And it's not just for the owner, even the developer can benefit; sometimes it's the most convenient to hook something up to the CMS beforehand, instead of manually changing it in the HTML later on. I know-understand when a cms is needed, that wasn't the thing I was trying to ask. I wanted to ask how much programming is involved with me. Am I supposed to write code regularly, or is it a rare task only needed with advanced cases? I never worked with them so have no idea what the usual workflow is :/ It depends on client demands. If you're not OK with just using some existing CMS and its out-of-the-box features than you can expect plenty of coding on your part to incorporate the necessary stuff into the CMS. But usually after you ship it you rarely have to touch it. The programming work involved can be anything from a couple of days to a couple of months.
the chapter 1 of liferay book teaches how to checkout code and install ant etc. first page in opencms documentation talks about writing jsp. confused 
I'm not sure I understand the question right. If your job is to build a CMS, it will involve a fair amount of programming (how much depends on lots and lots of other things in your project). If your job is to update the website using the CMS then it *should* require no programming at all. It probably won't even require any CSS/HTML.
job is to create a simple website using cms that:
- has multiple locales selectable - has an announcement feature where owners can make announcements which shows on main page - have some links to external websites
|
I could need some advice for a project I intend to tackle. At the moment, my biggest problem is determine the correct hardware.
EDIT: Of course, he could just lock the cupboard, but this isn't a serious solution to a problem but rather a fun idea to play around which could make a great gift.
The Beginning: Someone I know lives in a shared apartment, let’s call him Bob. Bob doesn’t mind sharing some of his tuff, but hates it when his flatmates take stuff first and only ask later. Even though he would have given permission anyways, it upsets him. His flatmates claim they simply forget to ask sometimes, since some of Bobs stuff is indeed free to take without asking permission. After watching “Jack and the Beanstalk”, Bob thought “how cool would it be, if my cupboard could cry ‘theft’ to remind them of asking”. Here I get into the picture.
General Idea: I want to build a device to “secure” a cupboard. Whenever the door is opened without permission, the device should play a sound. Some form of remote makes it possible to unlock the cupboard via wireless connection for a set amount of time and to enable/disable the alarm completely. The remote will most likely end up being an android app and doesn’t require any additional hardware. To be clear, there won't be any locking mechanism, locked/unlocked is only a state, stored in the software that determines if a sound is played or not when when the door gets opened
Minimal requirements and possible solutions: Network: The device must be able to run a customized server/client and to use the w-lan of Bob.
Cupboard Door opening: The easiest way to determine if the door gets opened is probably some sort of switch that gets released when opening the door. The device must be able to access this signal and to use it. I have some experience with embedded systems, but back then I was always limited to assembler / very basic C, so I have no experience in combining this with a more advanced approach.
Portable power source: There will most likely be no possibility to connect the device to a power outlet, so it needs to be sustained by a portable one. It also has to run 24/7 so energy consumption shouldn’t be high.
Software: I have to be able to write my own server/client for the device and should be able to automatically start it after booting
Setup & Usability: Since Bob is not very fit with computers in general and he doesn’t live close to me, the device shouldn’t need much configuration after the initial setup. For example, this means the device should be able to automatically connect to the network, once it has been setup by me, a restart of the router shouldn’t be an issue as long as name and password of the network stay the same. Also, it should be able to simply restart the device without any further configuration, even when it was without power for extended amounts of time.
Audio: The device must be able to play audio/connect to speakers to play audio, the speakers also need a portable power source.
Nice to have: USB/SSD: To make Bob still be able to change the sounds if he wants to, it would be cool if the device just played a sound file from an USB stick/SSD card. This way, even bob could change the sound.
General Idea about the software: Since I am not sure about Bob’s internet setup I have 2 approaches. I don’t know the current situation but I assume his IP refreshes every 24h, however he is most likely change to a provider where the IP stays the same for a year. For both cases I have come up with an approach.
24h IP-reset: Since a 24h IP-reset would mean that the IP of the device will change a lot, I would use the server to deliver the messages. After booting/reconnecting, the device would contact the server which gives him the IP. The remote would always send the commands to the server which would forward them to the device. Besides the initial setup for remote and device, there would be no more IP configuration needed. It also means that there is another possible point of failure and when I change servers/get rid of my server the device wouldn’t work anymore. I would probably use something like MQTT with my server being the broker.
1year IP-reset: Device and Remote would directly communicate via TCP, occasionally you would have to change the target IP for the remote, but overall I would prefer this solution. Teaching Bob to determine his own IP wouldn’t really be an issue.
Choosing Hardware: The above stated are my requirements. My problem is, I don’t know much about the available hardware, the only 2 things that came to my mind where the raspberryPI and an Arduino, but I don’t know that much about both systems. I figured the raspberryPI would be more comfortable to configure and write software for since it is an actual computer with an OS while the Arduino is not. However, especially with the usage of some kind of switch, the requirement for a portable power source (my electrical skills are not great, so I am glad if I don’t have to tinker something on my own) etc. it seems like more build for my project. My main concern towards the Arduino is to what extend it would support custom software. I am very thankful for any form of input, may it be towards the hardware or just the general idea of my project. Hardware is currently my main concern though since I won’t be able to plan in detail until I know what I will be working with.
|
Hyrule18968 Posts
You're right about the Pi being easier to use, but it does use more power than an Arduino. Either way you'll want to figure a way to power it through a wall socket as a motor eats power. You might want to consider just telling Bob to start locking the cabinet and if someone wants to borrow something they need to ask when he's around.
|
On November 05 2016 00:12 tofucake wrote: You're right about the Pi being easier to use, but it does use more power than an Arduino. Either way you'll want to figure a way to power it through a wall socket as a motor eats power. You might want to consider just telling Bob to start locking the cabinet and if someone wants to borrow something they need to ask when he's around.
Yeah, as I progress with my research, I am drawn more to the conlcusion that the networkfunctionality pretty much kills the ability to properly run it via battery. Of course locking the cupboard would be easier, it is more a fun idea for a gift though. Propably should put that up in the original post.
|
On November 04 2016 23:26 Prillan wrote:Show nested quote +On November 04 2016 22:29 Manit0u wrote:On November 04 2016 20:00 mantequilla wrote:On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 mantequilla wrote:I'm a web app developer (from scratch with code) but got suggested using a cms for a customer with simple needs, they need to make announcements etc on their website, some static info and links to other systems. I'm alien to whole cms thing. when I'm making a website for a customer using a cms, am I supposed to write code regularly? Is the online content editing thing for the non technical customer to just update the site content? I quickly tried to put a language selector on top of the main page using couple of cms'es, and they suggested me to write server side code (jsp) to put it there. I thought I'd be just drag-dropping a ready lang selector component on the online page  There's usually a lot of content on a website that the owner of a website should be able to change without the intervention of any web developer; a CMS provides the interface that allows him/her to do this. Does it make sense that a web developer has to be contacted every time you want to add a post on a blog, change the banner of your website, etc.? - No, so that's why you use a CMS. Not just for simple websites, but for almost any website. If the question to "should the owner be able to change this?", you need a CMS. And it's not just for the owner, even the developer can benefit; sometimes it's the most convenient to hook something up to the CMS beforehand, instead of manually changing it in the HTML later on. I know-understand when a cms is needed, that wasn't the thing I was trying to ask. I wanted to ask how much programming is involved with me. Am I supposed to write code regularly, or is it a rare task only needed with advanced cases? I never worked with them so have no idea what the usual workflow is :/ It depends on client demands. If you're not OK with just using some existing CMS and its out-of-the-box features than you can expect plenty of coding on your part to incorporate the necessary stuff into the CMS. But usually after you ship it you rarely have to touch it. The programming work involved can be anything from a couple of days to a couple of months. On November 04 2016 19:21 Nesserev wrote:On November 04 2016 18:37 Manit0u wrote:On November 04 2016 18:20 Prillan wrote:On November 04 2016 17:56 Manit0u wrote: I would also like to know why is using classes within classes so prominent in Python... It is? Whenever I view sources for some open source projects I see subclasses in almost all of them. And multiple classes per file is pretty much standard too. Wait, you used 'classes within classes' first, then 'subclasses' ... what is it?  Are you talking about Java-esque inner/nested classes? I was thinking about nested classes: class SomeClass(self): class OtherClass(self):
I can't remember ever having seen that in python.
I've seen inner classes used a few times. Usually it's a way to use a class for the internal workings of something without really exposing it to the system as a standalone entity. In other languages there are also encapsulation differences, but that doesn't apply to python. I don't know why it's prevalent (if it is), I've never really seen it, but I don't dig much into python libraries.
|
Hyrule18968 Posts
On November 05 2016 00:14 waffelz wrote:Show nested quote +On November 05 2016 00:12 tofucake wrote: You're right about the Pi being easier to use, but it does use more power than an Arduino. Either way you'll want to figure a way to power it through a wall socket as a motor eats power. You might want to consider just telling Bob to start locking the cabinet and if someone wants to borrow something they need to ask when he's around. Yeah, as I progress with my research, I am drawn more to the conlcusion that the networkfunctionality pretty much kills the ability to properly run it via battery. Of course locking the cupboard would be easier, it is more a fun idea for a gift though. Propably should put that up in the original post. The big power draw is the motor that will do the locking/unlocking. Wifi dongles are relatively low-power.
|
|
|
|