Anyone used Dabo for a medium-big project? [closed] - python

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
We're at the beginning of a new ERP-ish client-server application, developed as a Python rich client. We're currently evaluating Dabo as our main framework and it looks quite nice and easy to use, but I was wondering, has anyone used it for medium-to-big sized projects?
Thanks for your time!

I'm one of the authors of the Dabo framework. One of our users pointed out to me the extremely negative answer you received, and so I thought I had better chime in and clear up some of the incorrect assumptions in the first reply.
Dabo is indeed well-known in the Python community. I have presented it at 3 of the last 4 US PyCons, and we have several hundred users who subscribe to our email lists. Our website (http://dabodev.com) has not had any service interruptions; I don't know why the first responder claimed to have trouble. Support is through our email lists, and we pride ourselves on helping people quickly and efficiently. Many of the newbie questions help us to identify places where our docs are lacking, so we strongly encourage newcomers to ask questions!
Dabo has been around for 4 years. The fact that it is still a few days away from a 0.9 release is more of a reflection of the rather conservative version numbering of my partner, Paul McNett, than any instabilities in the framework. I know of Dabo apps that have been in production since 2006; I have used it for my own projects since 2004. Whatever importance you attach to release numbers, we are at revision 4522, with consistent work being done to add more and more stuff to the framework; refactor and streamline some of the older code, and yes, clean up some bugs.
Please sign up for our free email support list:
http://leafe.com/mailman/listinfo/dabo-users
...and ask any questions you may have about Dabo there. Not many people have discovered Stack Overflow yet, so I wouldn't expect very informed answers here yet. There are several regular contributors there who use Dabo on a daily basis, and are usually more than happy to offer their opinions and their help.

I have no Dabo experience at all but this question is on the top of the list fo such a long time that I decided to give it a shot:
Framework selection
Assumptions:
medium-to-big project: we're talking about a team of more than 20 people working on something for about a year for the first phase. This is usually an expensive and very important effort for the client.
this project will have significant amount of users (around a hundred) so performance is essential
it's an ERP project so the application will work with large amounts of information
you have no prior Dabo experience in your team
Considerations:
I could not open Dabo project site right now. There seems to be some server problem. That alone would make me think twice about using it for a big project.
It's not a well-known framework. Typing Dabo in Google returns almost no useful results, it does not have a Wikipedia page, all-in-all it's quite obscure. It means that when you will have problems with it (and you will have problems with it) you will have almost no place to go. Your question was unanswered for 8 days on SO, this alone would make me re-consider. If you base your project on an obscure technology you have no previous experience with - it's a huge risk.
You don't have people who know that framework in your team. It means that you have to learn it to get any results at all and to master it will require quite significant amount of time. You will have to factor that time into your project plan. Do you really need it?
What does this framework give you that you cannot do yourself? Quite a lot of time my team tried to use some third-party component or tool only to find that building a custom one would be faster than dealing with third-party problems and limitations. There are brilliant tools available to people nowadays and we would be lost without them - but you have to carefully consider if this tool is one of them
Dabo project version is 0.84. Do you know if they spend time optimising their code for performance at this stage? Did you run any tests to see it will sustain the load you have in your NFRs.
Hope that helps :) Good luck with your project

Related

Why python can't be built and maintained by many people or over a long period of time? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
Following statement has been taken from Introduction to Computation and Programming Using Python by John Guttag
Python is a general-purpose programming language that can be used effectively
to build almost any kind of program that does not need direct access to the
computer’s hardware. Python is not optimal for programs that have high
reliability constraints (because of its weak static semantic checking) or that are
built and maintained by many people or over a long period of time (again
because of the weak static semantic checking).
The sentence in bold seems very vague , can anyone provide good explanation or example . ?
Python uses dynamic typing. That is, you can only know the type of an object with certainty at runtime.
A consequence of this is that the only way to know a piece of code uses the right data types is to run it. Thus, testing becomes very important. But testing all the code paths in a program can take a long time.
The problem is exacerbated when many people work on a program for a long time since it's hard to get devs to write documentation and to build consistent interfaces, so you end up having a limited number of people who understand what types should be used and everyone spends a lot of time waiting for tests to run.
Still, the author's view is overly pessimistic. Many companies have large Python codebases and are able to do so by having extensive, and expensive, test suites and oncall rapid response teams.
For instance, Facebook has hundreds of millions of lines of code of which 21% are Python (as of 2016). With this level of preexisting investment, in the short term it is much cheaper to develop ways of making Python safer than to migrate code to a new language (like Julia or Rust).
And we can see this in the ecosystem.
Python has been modified to address the typing problem through the introduction of type annotations. While these are not enforced at runtime they provide a fast (realtime) check of type safety that significantly reduces the need to rely on tests and can be used to enforce interfaces using tools like Pyre and mypy. This makes having a large Python codebase of the sort the author discusses much more manageable.

bitcoin and blockchain dev options [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I don't know if this is the best place to ask this, but I'm not looking for help on a specific problem. I'm looking into block chain technology and some bit coin stuff. Ran into someone that does a lot of articles on the subject and was curious about it.
Since its new(ish) technology and still up and coming, I'm wonder if it would be interesting to get involved somehow and help shape and/or add to it in some way.
What types of development is going on out there on this technology these days. All the reading material I can find online related to development and block chain is 4+years old. I'm sure its much different today. Anyone know of some good resources for learning about the technology, what type of development opportunities there are (python preferred) and just general info?
thanks
I would say that as a developer you will be interested in smart-contract. Ethereum with it's Solidity as the most well-known platform which offers smart-contracts is a good point to start. Check out frameworks built on top of Ethereum like truffle as well
I think that as developers the best thing we can do now is to develop some applications which simplifies using of blockchain for people because it's still looks like stuff for geeks.
May be you an idea of web-service which will be much better in case of using blockchain and smart-contracts? Great! Create MVP, get expertise in the area, show your product, talk to people and go on.
BitCoin is already pretty much hit its peak. The price of BitCoin is now dropping, and all you can find about it is already online. The BitCoin chains that you are looking for is pretty much used by connecting a bunch of Raspberry Pis that run the BitCoin mining program on it. The more you have, the faster you will mine the BitCoins, and you will profit from it. However, BitCoin mining is very hard to do, and it takes a very long time. You waste more money using electricity than actually getting the BitCoins. I'm sorry if you already know this information, and you still want to mine BitCoins. But this is all I have to say about this topic (Trust me, I've tried to do it -- and it's tough).

Correct workflow for a beginner - To use packages or don't [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Just a stupid question. I've been struggling in these last days, as a Django beginner, with the email registration (instead of the default User registration), and I've been thinking: is it better (in a process of learning) to keep on with the struggle and succeed, in the end, in the realization of the "project", or is it good too to use Django packages (like django-registration-redux)?
I mean, is it going to help me all the struggle of doing things without packages (i.e. Suppose I want to work as a Django developer), or is it useless effort?
Thank you.
Although I agree with The Laughing Man that this is opinion based, I will give my opinion hoping it will help. I have worked with Django for quite a while now, and I have learned that the answer to your question is based on a few things; Does the package have all of the functionalities you need, and a little more in case you need it? Can you and will you want to extend the functionality of the package yourself eventually? And most importantly - is the package well maintained? I found that answering yes to those three questions usually meant it was a good bet to go with the package.
In your case - it looks like the package is very well maintained - so I would go with that assuming it meets the other 2 criteria (or django-allauth, which is also excellent). No point in reinventing the wheel, especially if someone has done it better.
I agree with The Laughing Man and Hybrid for their respective view points. I have not worked with Django, but have worked with a large number of other frameworks.
I would like to add to what Hybrid has said - remember that Django is a framework and a framework usually consists of a set of packages most of which work in tandem with each other(for example a method in one package P1 may expect an argument that is actually obtained using facilities from another package P2).
Hence, if your code uses the packages available within Django then it will seamlessly work with other packages within the Django framework. If you are to (re)invent the wheel, then you may end up with some highly sophisticated and specialized functionality which would have the following characteristics:
Buggy - because you may not have handled all the use-cases and flows needed within that package.
Does not promote seamless integration with other core framework libraries. In which case you would need to write more code so that your specialized class works with the framework classes.
Re-inventing the wheel most often is a waste of time unless you are truly sure that you can solve the same problem in a real mind-blowing new way.

Sample django and python project [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I am a newbie to python and its framework Django. I am learning both the technologies parallel from its documentation, so I thought if there are some projects which I can use as reference for learning then it will help me learn the things fast. Can someone suggest me any such links.
I would suggest that you learn Python well, really well, since django uses Python's myriad of features to almost their fullest extent. I would start off with any random Python tutorial, but Zed Shaw's Learn Python the Hard Way is the best, and you can find a free HTML version of what he wrote. You can then get a book that teaches you to make games (great way to learn); Invent your own games with Python.
Well since you're a newbie, you'll probably want to start off by making a blog or something and then slowly moving up and making more complicated websites. The best approach to learning django is to first make something simple, then look at other people's code and learn from that. You an pick up a lot from reading other people's code and how they've structured their logic.
For a free resource, I would check out Mike Hibbert's Django tutorials on YouTube. He teaches you pretty much everything. Don't worry about the IDE he is using, just use a text editor like Sublime Text 2.
After you've made your simple website, its best that you start reading a book called Two Scoops of Django, by Daniel Greenfield. Really good tips and tricks on how to use django right. Great for newbies.
After that, start reading code. Read other people's code and understand how they made their sites. You can take a look at many sample django projects on the web. I would suggest that you go over to github and just randomly search for django projects. Thats what I did, and I think looking at other people's code is the best way to learn.
Lastly, if you want to get even more into django, join the IRC. Great bunch of guys there, not as lively as the Rails bunch, but they're pretty awesome.
Seconding the tutorial. It really is one of the most comprehensive and easy-to-follow framework tutorials out there. By the time you've finished it you'll have a much greater understanding of how all the django pieces fit together. It also has plenty of room to expand so you can experiment with new ideas.
Completing the tutorial has an added benefit: the django documentation frequently refers back to the tutorial app in its examples. So having the tutorial project available means you can quickly try out the features you're reading up on in an actual project.
One of the things that I (and possibly most people that are new to python as well as django) struggled with was separating "what bits are python?" from "what bits are django?". There's no real quick-fix for this other than gaining experience but like another answer mentioned, learning python on the side (maybe doing a few projects just using python) can help you with writing clean code within django too, and also see what is "missing" without django.
First start with Python as indicated.
Then, with regard to Django: I learnt a lot from the http://www.gettingstartedwithdjango.com/ video series, especially on set up and interesting packages to use.
No need to watch the video if you don't want to, as everything is outlined below the video as well.
Next to that, http://www.effectivedjango.com is a great help.

Django or web.py, which is better to build a large website with Python? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'd like to use Python to build a website with more than 100,000 PV each day. Now what I concern is to choose which web framework. I know lots of people use Django, and some people use web.py. Django seems powerful, and I also like the simplicity of web.py. Which framework should I use? (Please introduce the performance and the maintenance complexity, thanks!) Can web.py build complicated applications? Are there other frameworks better than these two?
In case you haven't started yet, Give both frameworks a try. I started off with Django and moved to web.py.
Web.py is not that hard as one might think. In fact, I find it easier to work with than with Django!
Just my 2 cents.
EDIT: Also, this might help: http://www.aaronsw.com/weblog/rewritingreddit
Django makes building complicated sites really simple. Before Django, I was messing around with PHP, and I was doing a really terrible job putting it together. Django leads you in the right direction with some good practices which makes your site really easy to maintain and update. I really like the ORM and how you can easily work with data from the database without having to write a single line of SQL. It makes development less of a slog.
I don't have any experience with web.py, and I can't compare the performance of the two. But you can't go wrong with Django at least.
Django is actually quite fast. Using caches and multiple DB backends is a doodle - you actually can utilize Django's predefined caching framework for one-line view caching or even template fragment caching. And of course - low-level cache API. And - it's fun!
In my experience - deployed under nginx and uWSGI, watched over by Supervisord, with the recently hot Celery task queueing package – Django is blazingly fast, easy to scale and configure and very reliable.
forget all those, if you want a beautiful framework look for weppy, i have used django , web2py, bottle,flask and most major php frameworks, just use weppy its full stack and exquisitely elegant, for php i simply created my own microframework that looks abit like weppy but its not fullstack, i love the granular control that weppy gives me and its quite easy to learn and its such a joy to use, eer did i already say that its beautiful? yes it surely is hahaha. you can find it here : http://www.weppy.org thank me later

Categories

Resources