Sweet zombie jesus, some redditor was commenting on Django getting overrun by SJW since they imposed their code of conduct. I thought he/she was just being paranoid!
There are practical limits though. Django (a python web framework) limited password length to prevent DOS attacks.
https://www.djangoproject.com/weblog/2013/sep/15/security/
> A password one megabyte in size, for example, will require roughly one minute of computation to check when using the PBKDF2 hasher... To remedy this, Django's authentication framework will now automatically fail authentication for any password exceeding 4096 bytes.
BCrypt truncates at 72 bytes, and is supposedly weaker beyond 56 bytes. This is easily resolved just by pre-hashing with another algorithm, but I don't think many users bother.
Some PBKDF2 implementations have bugs where they don't cache the initial hash state and so get progressively slower with longer passwords. Django limited password length because of this, though I think they fixed it in a later release.
There should be minimal additional load from hashing longer passwords. Hashing algorithms run at hundreds of MB/s, and while you're (hopefully) iterating many times, the first hash should compress any arbitrarily length password down to a fixed size.
If your password hashing implementation doesn't behave like this, you'd be well advised to select a new one.
Here's OpenSSL's PBKDF2 implementation, with 40,000 iterations of HMAC-SHA512 (on a very old Xeon):
100 bytes: 0.089s 1kB: 0.089s 10kB: 0.89s 100kB: 0.09s 1MB: 0.091s 10MB: 0.107s 20MB: 0.127s
If an attacker has that sort of bandwidth, they can probably do more interesting things to cause server load with it. You can fit a lot of HTTP requests in 20MB.
python, python e python...
potente, versatile, semplice da imparare, facile da leggere.
già che fai il web designer potresti dare un occhio a django e vedere come funzionano le cose dall'altra parte della barricata :)
magari in coppia a javascript per il lato client
Quentin Tarantino has planned to release Django 2.0 in December 2017. It will be the first film with Python 3 support only and will be supported until April 2019.
Source: https://www.djangoproject.com/weblog/2015/jun/25/roadmap/
A.B releases are not minor releases, they are feature releases as explained here (under "Supported Versions"): https://www.djangoproject.com/download/
Minor releases (or patch releases as they are called for django) are A.B.C
I'd refine that. This sub isn't responsive to this type of question because it trivializes the experience and training of lots of people here, saying all you have to do is "learn a language" and you're golden.
Now, OP, I recommend you keep learning python. Because you seem to be looking into web development, when you feel comfortable with the basics of programming (control statements, recursion, OOP (in terms of python)), look at Django, which is a web framework (much like rails) based on python. You'll need to pick up HTML, CSS, and Javascript, but the first two aren't too difficult to use, and the latter will come easier once you've already gotten the hang of programming in general.
Personally I really like working with Ruby on Rails (but I think RoR jobs might be harder to come by if you are just starting up again).
Python+Django is another popular choice.
Also the standard LAMP stack is probably going to be around forever.
If you use proper 'slow' hashes for storing passwords (like PBKDF2 or bcrypt) you want to have a sensible maximum password length in order to prevent these slow hashes becoming a denial of service attack vector. See this Django security advisory (CVE-2013-1443) for example: https://www.djangoproject.com/weblog/2013/sep/15/security/
JavaEE is terrible in kind of the opposite ways that PHP is. I can see how you'd think that PHP is the "cure" to JavaEE.
I followed a similar trail, from C++ and Java to PHP, realizing how much time is wasted futzing around with classes and types. But PHP is not the last stop on that journey!
Languages can be dynamic without being sloppy. Python has all the flexibility of PHP, combined with all the extensibility of Java. Give Django a week, you'll never look back :-)
Yes absolutely. You can use any server technology you want to serve as the backend for an Android app!
Python is probably best done with Django, a popular web framework for python. You will have to adapt your scripts a bit to run in Django - use models, views, etc, but once you have it up and running you will love how extensible it is.
Check out Django and see if it fits for you: https://www.djangoproject.com/
I've written 3 backends in Django that serve Android and iOS apps and they work excellently. You will probably want to use django-rest-framework to make your APIs. The web is full of excellent tutorials for setting up stuff like this.
I recognize that Django might be a bit too heavy for you - there is some learning curve and it enforces a particular project structure that you'll need to adjust to, and there might be a simpler option. But surely you must have a look at Django if you're interested in writing Python backends! If Django is too much for you I've heard good things about Flask: http://flask.pocoo.org/
> Personally, I don't like any frameworks, preferring to write everything myself
As in starting from a blank file, writing a script, printing straight HTML, and running via CGI? Because that's fucking worse than PHP. Please, for your own sanity and anyone else's that has to maintain your code, at least do some research into a mature framework like Django that provides good database modeling and templating. I'd expect someone with an infosec background to appreciate the built-in security features like SQL/HTML escaping and CSRF/XSS checks which are probably missing from your hacked-together scripts.
There was a spike in the number of players; a sharp increase in request volume, exacerbated by the recent in-game events.
It's difficult to handle.
You're claiming their server code is "bad", yet neither you nor I have any idea if they're using Alim's server software, or using middleware that might be supported by a separate vendor.
You claim their servers are bad, yet have no idea of their specifications; I'd wager that they're using IBM or HP blades, same as everyone else.
Server resources being under-provisioned happens, and they take some time to fix.
==
Let's look at the technology they use - http://job-search.jobstreet.com.sg/singapore/company/gumi-asia-pte-ltd-jobs/
Django Web Framework - https://www.djangoproject.com/ Great, very popular, very performant.
MySQL - http://www.mysql.com/ The go-to database system. Fast, but not as fast as DB2 or MSSQL in my experience.
Redis, Memcached for caching.
==
I think their technology is good, but they got caught reacting slowly to an increase in player numbers.
They also have to be sure that the increase isn't just a spike, otherwise they'll be sitting on very expensive, unused hardware, not to mention any network upgrades they may have planned.
tl;dr: I think their tech is good. They made an error in planning. Mistakes happen.
If you have a choice, do not start on 1.8. It is already out of LTS support. Django 1.11 is the current LTS release, so if you plan on deploying a Django site in the next year, I would recommend starting with it.
In fact, if this is your first time learning Django at all and it will be a while (6+ months) until you use it, I would recommend learning 2.x first. The next LTS release, 2.2 comes out next April.
Here are the full details if you are interested.
Wow I just looked at. It's really bad. Each of those columns should be their own page. Compacting information like that makes it harder to absorb. People don't go to the site to hear about pygame news or reddit posts. People go there to find docs, tutorials, and code examples. The person who makes it should rearrange the order in which information is displayed. Maybe they could take some lessons from the Flask or Django websitse http://flask.pocoo.org/ https://www.djangoproject.com/.
1.4 is LTS (see the bottom of: https://www.djangoproject.com/download/).
Quoting the Release Process (see: https://docs.djangoproject.com/en/1.8/internals/release-process/#long-term-support-lts-releases) > Additionally, the Django team will occasionally designate certain releases to be “Long-term support” (LTS) releases.
(emphasis mine)
Looks like they've moved to another server (irc://irc.libera.chat/django) as per the link on: https://www.djangoproject.com/community/
​
Likely due to this story: https://arstechnica.com/gadgets/2021/05/freenode-irc-has-been-taken-over-by-the-crown-prince-of-korea/
Check the roadmap here: https://www.djangoproject.com/download/
2.2 will be supported for longer than 3.0 but I highly doubt there will be any hard breaking change between 3.0/3.1/3.2 that would stop you from upgrading by simply installing the newer version.
I've been programming for about 30 years & made decent money doing it. My advice to a new comer would be to get involved with some of the open source projects. For example, if you're into web stuff, consider looking at the Flask Project or Django project. There's an incredible amount of talent out there that you can learn a lot from.
"Web development" is more all-encompassing, and ranges from frontend to backend. So it's more than just HTML because to make a high quality website or web app you'll need a lot of technology running in the background.
Your second question confuses me, since you also need a server to run Python. Or if you're comparing it to plain HTML: the difference is a dynamic website can do much more. It's basically automated HTML that can change based on data.
If you want to get started with Python for web development, I suggest you check out Django or Flask.
You can use pretty much any language to create a website, but it's going to be way harder with some.
However, since you already know Python, I'd recommend using one of it's web frameworks. They'll do a lot of the difficult and annoying stuff so you can focus on building your web application. The most popular are Django, Flask and Pylons (the framework reddit uses). Pick whichever seems easier/better/more interesting to you, learn the basics and start coding.
You should also know basic HTML and CSS to build the page's interface. You can learn these in pretty much any tutorial on the web. HTML is incredibly easy, and CSS is easy to understand, but somewhat difficult to use effectively.
Knowing Javascript is also interesting, but not essential, so you should postpone learning it until you're comfortable with HTML, CSS and back-end programming.
One more thing to throw in the pot here. Has your team considered an upgrade path for Django 1.7? I'm assuming since you are on Django 1.7, you probably have a good number of other outdated libraries.
The reason I ask is that Django 1.7 reached end of life 2 years ago, which means it isn't getting security fixes. Even Django 1.8 LTS is reaching end of life in 6ish months https://www.djangoproject.com/download/#supported-versions
It is a bit of a pain in the ass. I personally did the 1.8 and 1.10 upgrades for a ~150-200k line Django codebase, both took me somewhere between 1-2 weeks if I remember correctly. I didn't do 1.9 so I can't speak to that, but 1.11 was trivial. However, keeping up to date with their security releases will help.
I'm not entirely certain I completely understand your question, but I'll do my best. Django has a templating system (which can be swapped out for Jinja, etc. if you like) for generating HTML. It has forms for validating data coming from the front end, allows you to determine how your ReST API is going to look (via urls.py) and uses an ORM in order to help you talk to your database easier. Django will return rendered HTML after validating. The only thing you might do separately is develop JavaScript if you need it. In other words, I wouldn't develop the front end stuff entirely separately.
Hate to be "that guy", but Django has some of the most thorough, complete documentation I've come across. There are tutorials, guides, anything your heart desires to know about Django. A good place to start would be the 'getting started' since it seems like your questions are related to general architecture/setup. It might seem daunting at first, but once it clicks, you just might love it.
Django is so awesome, they even release releases and bug fixes for older versions like 1.4
Check this: Django 1.4.20, 1.6.11, 1.7.7 and 1.8c1 on March 18, 2015
Please donate to Django - https://www.djangoproject.com/fundraising/
As far as I know, Python is not used heavily in game development -- it's supposedly too slow for most games, though I can't say I know from experience.
That said: I think Python's a kickass language and well worth learning. It is great for writing web applications -- Django is the go-to tool for this in Python, and it's a wonderful piece of software -- but you can find many other interesting uses for it as well.
If you're curious what people do with the language, you might check out the Python Package Index, a directory of publicly available libraries for Python. Everything there can be easily installed into a Python project -- maybe it'll give you some ideas for things you might like to build!
I think it's a bit of a myth that volunteers form the backbone of open source development. I'm not saying that volunteers don't exist, but I believe that most if not all successful technologies have substantial corporate or government buy-in.
As for the folks who say they love programming so much they program in their spare time, that's great, I love programming too and it's one of the many things I do in my spare time. There's a difference between learning and having fun and doing unpaid work.
Generally, if an open source technology has serious buy-in from a for-profit company, it is in the interest of that company to make sure the technology they're building on doesn't get stale. It's cheaper for companies to invest together in the form of open source technology than it is for each one to develop their own frameworks. Companies may also open source code they've developed so that other interested parties might improve it.
In the case of Django, you can check their corporate members here: https://www.djangoproject.com/foundation/corporate-members/
As for LibGDX, the project itself is supported by Intel, as can be seen from their frontpage. However, I would imagine that most development is probably done by companies that depend on LibGDX to deliver their product.
The bottom line is that software licensing is only one business model for the industry. Many companies rely more on web-based marketing, SaaS, or something else entirely to make money off their software.
PS I would check out Red Hat. They're a company that develops and supports a lot of open source software.
It cured my cancer and turned my entire digestive tract into solid gold.
But seriously, python and flask or the D is silent. You get to spend more time working, solving problems and creating features. You get to spend less time dreaming of choking Rasmus to death.
If you're into web development, check out django and write a web application.
If you're more into physical programming, like using motors and sensors, buy a raspberry pi.
I
> Would Python be useful for this?
You can write the backend, the server-side stuff, with Python using something like Flask or Django. The frontend, the page the user actually interacts with, will need to be HTML, JavaScript and CSS.
> Would it be unrealistic to take this on on my own as a side project at a later date.
Sounds like a great side project to me.
Django is a python-based web framework. Projects built with Django follow the model-view-template pattern. I commonly see it used for developing REST APIs and PostgreSQL database management but it is most known for use in websites. Instagram, Pinterest and Mozilla all use Django for their websites according to the Django foundation's site.
So we're both right:
https://www.djangoproject.com/weblog/2017/dec/02/django-20-released/
It looks like the biggest change they made in 2 was dropping support of below 3, but the reason they jumped to 2 was they are changing how they are handling version numbers from here on out.
https://docs.djangoproject.com/en/2.0/internals/release-process/#internal-release-cadence
Don't start with Cherrypy like the other guy did, though. It's unnecessarily simplistic and doesn't really offer much of anything.
Flask is good for small projects that you want to hand code every page. You would for example have to manually include code that calls from MySQLdb in order to do any interaction with the database.
Django for projects that you want to take advantage of a built in ORM, admin section, templating language, user authentication, etc. Django's ORM can manage your database, tables, and queries for you. This also has a baked in user authentication system including detailed permissions and the ability to manage it all in a prebuilt admin section.
Either of these two options will take care of all the low level http stuff, and allow you to handle GET, POST, PUT, and DELETE requests, and can both handle sending and receiving JSON.
For what you want to do, it sounds like Django would be the right choice if you want to just get the whole thing up and running with only one framework.
A basic CRUD app that leverages a database is pretty low-hanging fruit. Could even slap a functional front-end on it, rent cheap server space, and host it somewhere for employers to take a gander.
If you wind up making a web app, check out Spring or Django. They have pretty good documentation and sample projects to get you started.
> to put into my GitHub portfolio
Track your code changes in GitHub. This demonstrates that you not only know what git is, but can use it reasonably well. Don't just dump finished code into the GitHub repository. Dump "finished release ready" stuff into your GitHub as a "Release" under the project, but regular commits documenting how the project evolves is more valuable even if it's just you committing.
It seems that so far (as of September 2016) it hasn't been decided if it'd be merged into django core.
See https://www.djangoproject.com/weblog/2016/sep/09/channels-adopted-official-django-project/
It's a sad state of affairs when event organisers feel they have to step in and protect their speakers.
It's sad that little idiots get off on harassing women (in particular) off the internet.
It's disgusting that Google is so far removed from moderating YouTube now that it's essentially a cesspool you have to either disable, moderate extremely hard, or let bigots take over.
And I'm appalled that even in here you find people talking about censorship of people who clearly have no intention of discussing the topic, who only want to hurt, like that's the bad thing. Grow up. If some bell-end came into your place of work, stood behind you for the entire day shouting about the size of your arse, you'd probably want somebody to do something about it.
If in doubt: Stay on-topic and leave ad-hominem attacks for your feelings journal.
If you can't do that, go away. You're not welcome in the Django community.
Every list of objects will paginate to 50 items per page by default (this is configurable).
Good point, I'll add a search feature for the site list. (I've been wanting to add a generic search across all object types, too.)
NetBox is built on Django/Python. Probably should have mentioned that.
I wish. (Hint hint UC). Good question though. What I did was use python and selenium webdrivers python bindings to write a quick script to collect the data for me and save it via Django's Object-relational mapping. I've got the source om github and will be setting that repo to public once I finish the documentation for it and give a final look over.
I had to go the hard route because UCs website is AJAX driven so a more traditional webscraper like scrapy or even just using beautifulsoup with requests would have given me a whole bunch of nothing. I'm kind of looking forward to Catalyst even though it means I'll have to rewrite the whole thing, just because it'll hopefully be better than the homegrown system they have now.
Flask is nice and simple but django is way ahead of the curve.
Edit: I know you say you tried. But I wanted to point out that the apparent complexity in the kickstart is a win on the middle run, as it enforces a clearer architecture and you end up with a saner project. Flask is more "you are on your own" which is sometimes nice but most of the time ends up backfiring.
Keep in ming that lots of security issues cannot be patched solely by updating a library in a non breaking fashion. This is not a matter of the developer being cavalier or not. A buffer overflow is easy to fix in a non breaking way, of course. But think of past broader issues, like the introduction of CSRF tokens to prevent Cross-Site Request Forgery.
Just have a look at the latest Django security release for example [1]: reverse()
behaviour was altered in a potentially breaking way to prevent attacks. This is the right thing to do. Security trumps backward compatibility.
[1] https://www.djangoproject.com/weblog/2014/apr/21/security/
If you're not afraid of tackling a new language, I would suggest learning a python-based web framework called Django.
It supports plenty of different databases, and makes building a website a pleasure by taking care of a lot of the crappy repetitive work for you.
It includes an excellent ORM system so that you don't have to worry about learning SQL or the dangers of query injection, as well as a great templating system that supports hierarchical classes. Add to that a kick-ass collection of existing plugins that can save you from re-writing the wheel, and you've got a really compelling package.
Oh, and did I mention that it has some of the best documentation that I've ever encountered?
Check it out. It's worth learning Python.
You know what's great about the open source community? People can contribute improvements. Visit the Django Community page to sign up. I agree with you, the existing tutorial could use some refinement. If you have the cycles to do so, go for it.
Adding to this, Django would probably be a decent choice for an interface to a database. It's a very "batteries included" sort of framework where you can easily get a useful app up and running complete with database persistence, user accounts and a basic but functional admin UI just by following the tutorial.
You'll need to know a little Python and a little bit about relational databases, but nothing at all insurmountable even if you're just starting out. Be sure also to learn Git or another revision control system as well, since sooner or later they will save your bacon when something breaks and you need to find the change and fix it.
Then once you get started, take a look at <em>The Hitchhiker’s Guide to Python</em>, which is a great resource for taking your project and making it easy to deploy and maintain.
You can use channels now. It is not part of core, but is a supported project.
> Official projects, like Channels, do not merge into the core django repository but instead remain as separate repositories and packages, living under the Django organization on GitHub. They have their own release schedule and backwards compatibility policies, but fall under the main Django security policy and oversight, and are guaranteed to work with the currently supported versions of Django.
https://www.djangoproject.com/weblog/2016/sep/09/channels-adopted-official-django-project/
> Can python help me in that field?
Yup! Reddit is built on Python and Javascript mostly.
> Should I keep learning python to refine my development skills and then learn javascript/html etc?
HTML is trivial and can be learned along-side pretty much any web-focused framework. I would build a functional webapp using the Python momentum you have currently. Django is pretty popular and very well documented. Once you have a working web app, pick any of the hundreds of front-end Javascript frameworks to slap a prettier GUI on it. You could also learn a Javascript framework in tandem with Django if you're in a hurry.
The Django tutorials are a good place to start IMO.
If those tutorials look like Greek, maybe keep plucking away until the Python way of doing things feels a little more familiar.
Major drawbacks of using 1.5 or older is:
If you want to created a new site, but don't want to continuously keep it up to date, you can use the LTS (long-term support) release, currently 1.8, which will be supported until at least April 2018.
See here.
There's no work underway at the moment, no.
The DSF did include a limited amount of integration as part of their MOSS grant application - https://www.djangoproject.com/weblog/2015/dec/11/django-awarded-moss-grant/
I'm not sure the status of that at the moment, as the work on Channels is (rightly) taking priority. If and when the request parsing/content negotiation/response rendering tasks get prioritized you can probably expect the core team to issue a call for work (As they've done for the channels tasks - https://groups.google.com/forum/#!topic/django-developers/egFlHXopcpg ), where they list out the required tasks, and open applications from folks to undertake paid work to complete them.
Extended support for Django 1.7 ended last December...Unless I'm missing something, why wouldn't a new package be built for the latest LTS version (1.8)?
How about a Django webapp? Learning about technologies that power the web is invaluable (especially for careers later on).
Things you'll learn just by creating a simple Django webapp:
And lots of other fancy things. If you don't know what anything on that list is yet, don't worry, the Django tutorial moves at a comfortable pace (IMHO)
I didn't find such language in the main Django CoC. So I went to the FAQ, and found:
> However, we do expect that people will abide by the spirit and words of the CoC when in "official" Django spaces. This code has been adopted by both the Django core team and by the Django Software Foundation. That means that it'll apply both in community spaces and at DSF events.
And then at the bottom:
> This is censorship! I have the right to say whatever I want!
> You do -- in your space. If you'd like to hang out in our spaces (as clarified above), we have some simple guidelines to follow. If you want to, for example, form a group where Django is discussed using language inappropriate for general channels then nobody's stopping you. We respect your right to establish whatever codes of conduct you want in the spaces that belong to you. Please honor this Code of Conduct in our spaces.
As others have said, Django 1.8.2 will be almost identical to 1.8.3. But to build the docs yourself:
tar -xzf Django-1.8.2.tar.gz
cd Django-1.8.2/docs
pip install --user sphinx --upgrade
make epub
Some information that might interest technical people:
Are You seriously comparing Frameworks to a language?
> Do you seriously not know the difference between a programming language and a framework written in a language?
This Performance Test Conclusion (Linking to That, because the source doesn't load) on the Django Website states That the Performance hirarchy (fast to slow) is Django, Rails, Symfony.
This test here rates Django as being able to handle 17,000% more requests per second.
OK. If you want to use python then Django is a good start. I hear is a pretty good framework and should make things easier for you. The blog engine Byteflow was written with Django, so it's at least possible for you to do it.
NetBox is built on the Django Python framework, which AFAIK should run on FreeBSD. It may take a bit of custom work to get up and running, but I can't think of anything that would impede it. People have reported successful installations even on Windows.
Also check out the public demo if you haven't already.
I'm going to diverge a little bit because you have taken some Java. Python is probably the easiest language to learn. The more important question is what are you interested in or can be of use right away so that you don't need to rely on willpower to get through a tutorial lesson. As /u/Selwonkak said You will still need to learn the underpinnings of the language but I believe that it will give you the extra motivation to stick with it when things don't make complete sense or you are feeling bouts of procrastination. And also, like /u/Selwonkak, start modestly not I want to build a framework to rival Django (https://www.djangoproject.com/)
Keep it simple. My advice is to just make your script send emails, if you get your email on your phone you'll get a push notification. Email has pretty robust filtering capabilities you can use. Way less work than building a whole new app and it works everywhere.
If you're feeling ambitious stick together a django dashboard for it.
If you need a cheap, pragmatic solution an Excel Spreadsheet is probably ideal for this.
​
If you really want to make a website with a proper database and everything, one of the simplest ways is probably by using Django. It has everything you need in one package, without needing to go down dozens of rabbit holes first to setup everything.
​
Also also... There's probably already commercial software available for this. If you really just need a solution for this problem.
The Django Download Page indicates that the currently supported releases are 3.0 and 2.2 LTS. Later down on that page, it indicates the next LTS will be 3.2.
Current releases:
Release Series | Latest Release | End of mainstream support | End of extended support |
---|---|---|---|
3.0 | 3.0.5 | August, 2020 | April, 2021 |
2.2 LTS | 2.2.12 | December 2, 2019 | April 2022 |
Future Roadmap
Release Series | Release Date | End of mainstream support | End of extended support |
---|---|---|---|
3.1 | August 2020 | April 2021 | December 2021 |
3.2 LTS | April 2021 | December 2021 | April 2024 |
4.0 | December 2021 | August 2022 | April 2023 |
​
Note that 3.2, not 3.0 is an LTS release. Django 2.2 LTS is supported for a full year past 3.0.
Hello, if I was in your boots I'd look at something like ASP.NET MVC (C#) or Django (Python)
Create a route like results/{siteId}
In your controller pull down the data and put it in a view model.
In your view loop through each piece of data and create a HTML link such as results/1
, results/2
, results/3
Your results controller would get back the data for that site id and put it in a view model.
Your results view would loop through each piece of data and render it however you want.
If you're talking about generating HTML files (I personally wouldn't go this route).
Create a template.html with the basic HMTL structure. Add in some easily recognisable tags so you know where to insert your generated data such as ----BEGIN INSERT----
AND ----END INSERT----
.
In your script you'd read the template.html up to the ----BEGIN INSERT----
line. Store that in some variable. Generate your HTML and append that to your data. Read the rest of the template.html after the ----END INSERT----
line. Append that to your data. Output your new lines into a new HTML document and record the filepath.
After you've done this for each set of results then you would generate your index file by looping through each file path and generating a HTML link and outputting it to a index.html file.
If definitely have a look at Django , specifically centered on the inbuilt admin functionality. I’ve used Django a number of times when I want a quick set of CRUD forms backed by a database, and the admin pages give you a bunch of functionality for free.
It’s definitely a full blown web framework with the learning curve that entails, but it’s very fast to work in for basic forms and CRUD. I’d run through the tutorial and give it a try - it’s absolutely faster to get up and running than rails, especially with the admin functionality.
I haven't used Rust specifically for this kind of task (my projects are best suited to Django's ecosystem of reusable apps) but have you tried running your project under a profiler to see where it's spending its time?
That's always one of the first things I do in any language when performance is an issue.
I would use Django for this. Has a great built-in ORM and admin app. All you need to do is define your database models, register them on the admin site, update your settings to point at your database, and you're done. Minimal Python knowledge required. You can accomplish this in an hour or two.
Keep doing web-development projects and build an online portfolio. Being able to show some of your projects helps a lot with the job search. Take a look at Django web framework, it's well documented and a great way to quickly build some projects.
https://www.djangoproject.com/
Tutorial: https://docs.djangoproject.com/en/2.1/intro/tutorial01/
Take notes on the djangoproject.com site and how they sell the idea of using Django to you.
"Django makes it easier to build better Web apps more quickly and with less code."
"Django was designed to help developers take applications from concept to completion as quickly as possible." That line alone
"Reassuringly secure: Django takes security seriously and helps developers avoid many common security mistakes."
"Exceedingly scalable: Some of the busiest sites on the Web leverage Django’s ability to quickly and flexibly scale.
Also, their overview page has good info: https://www.djangoproject.com/start/overview/
And when you're selling the idea of Django, you're also selling the idea of Python. Keep that in mind.
I guess a very practical thing to do then is to try out Django and make a simple website. Doing things like this can be very overwhelming at first, as you will see many things you don't know mentioned in tutorials (networking protocols, database stuff, etc.) and you will get the feeling you are gluing this together that you don't understand. However, if you read the docs carefully and follow the instructions of the tutorials, you will eventually realize that these things are not so important, and that all the logic is in the python code you will write in these projects. Often it is enough to watch a 10 minute youtube video on things that are mentioned (e.g. "what is HTTP", or "what are databases", "what is the object relational model") to give you enough knowledge to keep working on the Python code.
There is also a huge community around django and web development, so you will probably find that most (specific) questions you have, will already have been answered on stackoverflow
Some quick googling turned up this:
https://www.djangoproject.com/
Python is a 'real' programming language with a MUCH larger user base, so anything that's been developed for R probably already exists in triplicate for Python.
I'm not trying to dog on R here (it's definitely the language I use 98% of the time), but part of what makes it so good is it has a well-defined niche. It's the de facto analysis software for my entire field, and is currently replacing SPSS, SAS, etc. Part of that niche, though, is that it's really accessible to non-programmers, like you mentioned with the tidyverse example.
I'm going to agree on why this subreddit lol
Also, strongly suggest looking at Django. Flask is neat but the reason Django shines is that it's used in production all over the place and has tools to manage growing and modifying your site.
> not that common/profitable with web dev work.
Some of the biggest sites on the internet are powered by Python.
Bom, tu podes não achar, mas os boys (de todos os partidos) vão tentar mandar abaixo o teu trabalho de todas as formas. Acredita, já passei por isso. Ou seja o critério tem de ser sólido. Por exemplo, imagina que é passada uma lei para cumprir uma determinada medida, essa lei foi enquadrada? - muitas leis exigem regulamentos e outro tipo de documentos para serem efectivas. Quando é que a lei entra em vigor? etc... (nota bem, não sou de direito, tenho a certeza que um advogado encontra mais 30 buracos).
Depois tem o problema de como vais fazer isto. Se é para actualizar a lista e publicar, esta vai ficar desactualizada no dia a seguir, quando houver mais esta ou aquela acção do governo. Ou seja, se tens uma lista estática este trabalho só faz sentido ser feito no fim da legislatura. Teres, como sugeres, pessoas que ficarão responsáveis por X medidas é, no mínimo, complicado.
Quanto ao website, não é difícil, se já sabes python colocas qq coisa no ar em três tempos. Escolhe um framework e faz o tutorial. Eu uso Django há anos, se tiveres dúvidas diz qq coisa.
The official Django tutorial is excellent for learning Django. Check out the getting started guide.
If you have no Python experience at all, maybe start with a general Python tutorial, for which there are an endless number of sources. Check out the FAQ or search the sub for similar questions.
I once had update notes in Django that limited the password input to 4096 characters because of a DDos. Found the release notes: https://www.djangoproject.com/weblog/2013/sep/15/security/#s-issue-denial-of-service-via-large-passwords
Also 1.10 is no LTS release and will only be support until the end of 2017. 1.11 will be a LTS release with much longer support. Take a look at this schedule. So you'd have to update anyway to get security related fixes.
I'm not sure I understand your criticism here -- the section in question shows you how to get a starter project with default settings, which can only display the "It worked" default page. And then the following sections move into showing you how to get Django to do more than that.
Explaining how to get a default setup, and verify it's working correctly (both through the system check and testing with the development server) is a good first step, since it lets new users understand what's involved in a simple Django-based project and how to run it locally for testing. If you think we can do a better job of it, please feel free to post suggestions or even submit patches -- the documentation is a major component of Django and we're always looking to improve it.
However, I'd suggest you have a look at our Code of Conduct prior to making more posts like this one. While constructive criticism is always welcomed, describing things as "idiocy" or with other unnecessarily harsh and insulting language is not constructive and not welcomed.
A higher level language like python. You won't get any weird segfaults or linking errors like you would encounter trying to learn something like C or C++.
As a bonus python is what the web framework django is written in.
Django's planning to start making 3.x-only feature releases by the end of 2017: https://www.djangoproject.com/weblog/2015/jun/25/roadmap/
Some more library plans for going 3.x-only: http://www.python3statement.org/
Maybe the most notable is that Jupyter plans to start requiring Python 3 within the next few months (though it will still support running Python 2 code inside notebooks -- just like it supports other foreign languages like R or Julia or whatever).
For Python the libraries are following, though, not leading. I think we'll see usage tip over within the next 6-12 months, and then after that a major uptick in libraries dropping support.
The web frame work Django is pretty sweet.
They call themselves: "The web framework for perfectionists with deadlines."
It will be a lot to take in but it is worth it to learn a MVC framework. But keep in mind, you'll still need a solid foundation in html, css, javascript unless you'll just be making an api or just working on the back end.
Correct.
pip install django will always choose the latest, but if you specify the version it will just give you whatever you ask for and uninstall whatever you currently have installed.
Also, 1.8.8 is actually the latest release in the 1.8 version.
You can always find out what the latest release in each version is here: https://www.djangoproject.com/download/
Pick one language and stick with it to begin with. I'd recommend python over ruby (I mean, you are in the python subreddit), but go with whichever you feel like you can make the most progress with, the language isn't the hardest thing, its the concepts behind programming in general. Those are the hardest to learn, but once you learn them, language becomes less important.
Lisp is indeed different. But I'd recommend going deeper with either python (or ruby) instead of jumping into something else.
If you want the python equivalent of rails web app development, you might consider checking out Django, which is what I use
As darkkn1te said. Below are a few starting resources you might find useful.
Hmm; that sounds like they might be running django (a web framework). Django uses python (scripting language) with sql databases to present a website.
Obviously that's just one combination but if you have time to seek out the skills, it might be worth your time doing some tutorials in python and then use those to set up your own website using django (or another solution).
I got started in python programming using the lovely (and free) tutorial site Learn python the hardway. It takes a while but it's a completely new language, and that's never an easy task. After that Django has a decent tutorial explaining setting up your own site. If you don't have a server at home, you might want to read about the cheap/free micro-instance servers Amazon provides (called AWS). After that if you want to experiment with the various libraries use django, there's some really nice templates to get started making your own website.
https://www.djangoproject.com/ or http://laravel.com/
They are both succinct, not-overly-designed, clearly branded documentation sites with easy to find information. Which is precisely what they need to be.
I'm not a full time web developer, although I do a lot of web development for personal projects, some of which actually do get a lot of traffic. I used to use WordPress and got sick of all its issues. A couple years ago I started learning Django and it's so much more enjoyable, and infinitely better for doing anything custom. There is a bit of a learning curve if you're coming from PHP, but there's a huge number of packages available to help with all kinds of different common tasks. I'm not sure what the job market is like for it, you might ask in /r/django, but there are many high-profile sites built with it, like Disqus, Instagram, Pinterest, Mozilla, National Geographic, and more.
Do python, yeah. Since you know Javascript, also a lot of people here aren't a fan of PHP, imo i'd leave it, but you can chose what you want. But with javascript and python try doing this to enhance your skills in python.
https://www.djangoproject.com/
Also search on google, "violent python pdf" and "black hat python pdf"
Do those two books and learn networking using tcp ip illustrated volume 1 the protocols 2nd
That should be enough to start off.
In the end you'll always be serving HTML, CSS and JavaScript but there are some things that could help alleviate the pain.
The Django framework for Python. The Ruby on Rails framework for Ruby.
I personally don't like the extra abstraction they put in-between me and the final product. I personally use things like SCSS, Babel (to compile JavaScript from ES6 to ES5), Browserify (to modularise my JavaScript application) and framework like React or Angular. It works for me fairly well. But picking the right tool really relies on what you're trying to accomplish with it.
I have a feeling this wasn't what you were hoping for, but the Django Software Foundation sells corporate memberships to companies who are interested in supporting the further development of Django. Not sure if that's something your business would consider a justifiable purchase, but throwing that out there just in case it might be.
You should definitely use some kind of actual database. The people advocating CSV and text files are teaching you how to half-ass something, and that is a bad way to go about getting started with a project. But you don't necessarily need to actually learn to write SQL.
Django is pretty easy to use, gives you a nice Python interface to your data, has web capabilities built-in, and writes all your SQL for you. It's also hugely popular, has a great tutorial, a huge community, and just generally everything you need to get started using it is all online and free. It also can build an admin interface for you to view and manage your data without writing a single html tag, complete with user authentication.
Have you looked into Django? Something like Craigslist should be relatively simple using Django. Web sockets shouldn't be necessary unless you want things in the browser to change based on things happening in the backend - such as a chat system.
Good luck!
Employers probably don't care if you can build a site from scratch, but you don't want to be working on sites. Sites are brochures, they tell you when your favorite restaurant is open.
Web Apps are functional software applications that have to handle multiple requests per second and possibly scale to millions of users. Reddit is a web app written in Python. CMSs can't handle this and that's not what they are for.
Try your hand at the backend and forget what it looks like, as long as it is functional. There are plenty of backend developers out there who can't pull a nice design out of their ass if their lives depended on it... and that's ok because that's not what they were hired for. If making it look pretty is a top priority, you're going to have a frontend dev and/or a designer.
If you're solid in Java and Python try one of these out.
Django for Python. There is also a Django CMS that's pretty nice and more for building sites that you can play with too.
Do some Hello World tutorials then pick a simple project to make or find some more complicated tutorials. If you want to stick with the Java side of things or if there isn't a lot of Python work in your area, then you should look into learning Spring MVC since it's used a lot more than Play2 (tho Play2 does see some use and is a professional level framework).
You should learn how sites function and how they work. From how requests are sent to how they are rendered by the user and every in between. There is a lot to learn here and I'm not trying to say you have to learn it all before you get a job.
These things are pretty big and usually not worth building from scratch, there are already well docummented projects that do it for you (i.e. django) and are are under free license so I would suggest reading the source if you want to understand the inner workings or just use already built system.
Regarding mixing php and pythong, it's kinda unheard of and I can't really imagine where it could be useful other than for vanity purposes or some peculiar cases.
Check out Django. They have some really good tutorials on their site and python is fun! It comes out of the box with a pretty nice user authentication system, so you won't have to worry about coding that nasty stuff yourself.
Django (Python)
or
Django CMS would probably be the easiest for you without giving much headache. It's very easy to use and customize.
One thing I can point out off the top is that you are going to need a way to store that data. Either you are going to need to program interactions with a database directly, and thus will need to learn SQL (plenty of guides for that out there), or you'll want to use some software that handles it for you.
Like /u/rhonage mentioned, you still haven't really given us much to go off. For example, what problems are you having with running a web server at home?
If you want an introduction to web programming in Python, I'd recommend running through the Django tutorial. I know that at the very beginning it's hard to know even what questions to ask. If you run through that tutorial, you'll probably understand the problem space much better and can ask us better questions more specific to your problem.
Django is a Python framework for making web-based applications. It happens to include stuff that handles database interactions for you.