Tech Kaizen

passion + usefulness = success .. change is the only constant in life

Search this Blog:

Showing posts with label PYTHON PROGRAMMING. Show all posts
Showing posts with label PYTHON PROGRAMMING. Show all posts

Python FastAPI: Web Framework for building RESTful APIs

FastAPI is a web framework for building HTTP-based service APIs in Python 3.8+. It uses Pydantic and type hints to validate, serialize and deserialize data. It uses ASGI (Asynchronous Server-Gateway Interface) protocol, which allows it to handle asynchronous requests efficiently. FastAPI also automatically generates OpenAPI documentation for APIs built with it.

FastAPI is built on top of the Starlette web server and includes features that make building web applications easier, such as automatic data validation, error handling, and interactive API docs.

Pydantic is the most widely used data validation library for Python. with Pydantic, schema validation and serialization are controlled by type annotations; less to learn, less code to write, and integration with your IDE and static analysis tools. Pydantic's core validation logic is written in Rust. As a result, Pydantic is among the fastest data validation libraries for Python.

ref:

https://github.com/fastapi/fastapi

https://youtu.be/rkPIftzu1pQ?si=VEeDliBEzIp64vp5

https://pypi.org/project/pydantic/

https://docs.pydantic.dev/latest/

FastAPI vs Flask - https://shakuro.com/blog/fastapi-vs-flask

Posted by Krishna Kishore Koney
Labels: LATEST TECHNOLOGY, PYTHON PROGRAMMING

Python for Beginners

Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace.

Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.

Data Analytics and Machine Learning are the keys to the future and Python plays a significant role in this domain. Most of the Data analytics software including Pandas, NumPy, SciPy, StatModels, Bokeh, Scikit-learn are Python based. Python Deep learning packages include TensorFlow, Keras, Elephas. Anaconda is a free and open-source distribution of the Python and R programming languages for scientific computing (data science, machine learning applications, large-scale data processing, predictive analytics etc) that aims to simplify package management and deployment.

ref:

Python official website - https://www.python.org/

Python tutorial - https://docs.python.org/3/tutorial/

Learn Python - https://www.learnpython.org/  

Python Beginners Videos(Microsoft Developer Series) - https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 

Python Beginners guide:

    1.  https://wiki.python.org/moin/BeginnersGuide

    2.  https://www.python.org/about/gettingstarted/

Python documentation:

    1. Python 3.x documentation - https://docs.python.org/3/

    2. Python 2.x documentation - https://docs.python.org/2/

Python Playground:

    1. Python 3 Playground - https://www.katacoda.com/courses/python/playground 

    2. Python 3 Playground - https://code.sololearn.com/cOAXyhEmN1f7#py

    3. Python 2 Playground - https://code.sololearn.com/cd6pPeiuunQK/#py 

    4. Python 2 Playground - https://repl.it/@sergiitk/Python-2-playground 

Best Python Books - https://realpython.com/best-python-books/

Python Books - https://hackr.io/blog/best-python-books-for-beginners-and-advanced-programmers

Python Crash Course - https://github.com/topics/python-crash-course

Python playground source code - https://github.com/berkerpeksag/python-playground 

Data Science:

    1. Python Data Science distribution, Anaconda - https://www.anaconda.com/
   
    2. Top Python Libraries in DataScience - https://towardsdatascience.com/top-python-libraries-used-in-data-science-a58e90f1b4ba

    3. Python DataScience Handbook - https://jakevdp.github.io/PythonDataScienceHandbook/ 

    4. Python Data Science Tutorials - https://realpython.com/tutorials/data-science/

    5. A Complete Python Tutorial to Learn Data Science from Scratch - https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2

    6. Python Data Science introduction - https://cognitiveclass.ai/courses/python-for-data-science

    7. Learn Python for Data Science from scratch - https://data36.com/learn-python-for-data-science-from-scratch/

    8. Programming for Data Science with Python - https://www.udacity.com/course/programming-for-data-science-nanodegree--nd10

    9. github white paper on deep learning, genomics and precision medicine - https://github.com/greenelab/deep-review

Posted by Krishna Kishore Koney
Labels: PYTHON PROGRAMMING, SCRIPTING LANGUAGES

Machine Learning(ML) Overview

Machine learning is a Umbrella term. It is a type of artificial intelligence (AI) that provides computers with the ability to learn without being explicitly programmed. AI means making computers act intelligently. It is one of the major fields of study in computer science and encompasses sub-fields such as robotics, machine learning, expert systems, general intelligence and natural language processing.” Machine learning focuses on the development of computer programs that can teach themselves to grow and change when exposed to new data.

Machine learning is the sub field of computer science that "gives computers the ability to learn without being explicitly programmed" (Arthur Samuel, 1959). Evolved from the study of pattern recognition and computational learning theory in artificial intelligence, machine learning explores the study and construction of algorithms that can learn from and make predictions on data such algorithms overcome following strictly static program instructions by making data-driven predictions or decisions through building a model from sample inputs.


Machine learning is closely related to (and often overlaps with) computational statistics, which also focuses in prediction-making through the use of computers. It has strong ties to mathematical optimization, which delivers methods, theory and application domains to the field. Machine learning is sometimes conflated with Data Mining where the latter subfield focuses more on exploratory data analysis. Statistical Analysis is a component of data analytics. In the context of business intelligence (BI), statistical analysis involves collecting and scrutinizing every data sample in a set of items from which samples can be drawn.


Deep learning is a form of machine learning that uses a model of computing that's very much inspired by the structure of the brain. Hence we call this model a neural network. The basic foundation unit of a neural network is the neuron, which is actually conceptually quite simple.


Machine learning tasks are typically classified into three broad categories, depending on the nature of the learning "signal" or "feedback" available to a learning system. These are -


    1. Supervised learning: The computer is presented with example inputs and their desired outputs, given by a "teacher", and the goal is to learn a general rule that maps inputs to outputs.


    2. Unsupervised learning: No labels are given to the learning algorithm, leaving it on its own to find structure in its input. Unsupervised learning can be a goal in itself (discovering hidden patterns in data) or a means towards an end (feature learning).


    3. Reinforcement learning: A computer program interacts with a dynamic environment in which it must perform a certain goal (such as driving a vehicle), without a teacher explicitly telling it whether it has come close to its goal. Another example is learning to play a game by playing against an opponent.


Generalization refers to how well the concepts learned by a machine learning model apply to specific examples not seen by the model when it was learning. The goal of a good machine learning model is to generalize well from the training data to any data from the problem domain. This allows us to make predictions in the future on data the model has never seen. There is a terminology used in machine learning when we talk about how well a machine learning model learns and generalizes to new data, namely overfitting and underfitting.


Overfitting and underfitting are the two biggest causes for poor performance of machine learning algorithms. Overfitting refers to a model that models the training data too well. Overfitting happens when a model learns the detail and noise in the training data to the extent that it negatively impacts the performance on the model on new data. This means that the noise or random fluctuations in the training data is picked up and learned as concepts by the model. The problem is that these concepts do not apply to new data and negatively impact the models ability to generalize. 
Underfitting refers to a model that can neither model the training data not generalize to new data. An underfit machine learning model is not a suitable model and will be obvious as it will have poor performance on the training data. Underfitting is often not discussed as it is easy to detect given a good performance metric. The remedy is to move on and try alternate machine learning algorithms.


Supervised Learning:


Supervised learning is the machine learning task of inferring a function from labeled training data. The training data consist of a set of training examples. In supervised learning, each example is a pair consisting of an input object (typically a vector) and a desired output value (also called the supervisory signal). 
The majority of practical machine learning uses supervised learning. Supervised learning is where you have input variables (x) and an output variable (Y) and you use an algorithm to learn the mapping function from the input to the output.


Y = f(X)

The goal is to approximate the mapping function so well that when you have new input data (x) that you can predict the output variables (Y) for that data.


Supervised learning mainly has 2 categories:


    1. Classification - Target variable is categorical(yes/no). A classification problem is when the output variable is a category, such as “red” or “blue” or “disease” and “no disease”.

    2. Regression - Target variable is continuous. A regression problem is when the output variable is a real value, such as “dollars” or “weight”.

Some popular examples of supervised machine learning algorithms are:

    1. Linear regression for regression problems.
    2. Random forest for classification and regression problems.
    3. Support vector machines for classification problems.

Unsupervised Learning:


Unsupervised learning is the machine learning task of inferring a function to describe hidden structure from unlabeled data. Since the examples given to the learner are unlabeled, there is no error or reward signal to evaluate a potential solution - this distinguishes unsupervised learning from supervised learning and reinforcement learning. Unsupervised learning is closely related to the problem of density estimation in statistics. However, unsupervised learning also encompasses many other techniques that seek to summarize and explain key features of the data.


Unsupervised learning problems can be further grouped into clustering and association problems -


    1. Clustering: A clustering problem is where you want to discover the inherent groupings in the data, such as grouping customers by purchasing behavior.

    2. Association:  An association rule learning problem is where you want to discover rules that describe large portions of your data, such as people that buy X also tend to buy Y.

Some popular examples of unsupervised learning algorithms are:

    1. K-means for clustering problems.
    2. Apriori algorithm for association rule learning problems.


ref:







Wiki -

    1. Artificial Intelligence - https://en.wikipedia.org/wiki/Artificial_intelligence
    2. Machine Learning - https://en.wikipedia.org/wiki/Machine_learning
    3. Unsupervised Learning - https://en.wikipedia.org/wiki/Unsupervised_learning
    4. Supervised Learning - https://en.wikipedia.org/wiki/Supervised_learning
    5. Neural Networks - https://en.wikipedia.org/wiki/Artificial_neural_network

Deep Neural Networks - https://www.technologyreview.com/s/602344/the-extraordinary-link-between-deep-neural-networks-and-the-nature-of-the-universe/


Supervised and Unsupervised learning - http://machinelearningmastery.com/supervised-and-unsupervised-machine-learning-algorithms/


Machine Learning Algorithms - http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/


Machine Learning using Python - http://scikit-learn.org/

Misc -

    1. http://www.kdnuggets.com/2015/01/deep-learning-explanation-what-how-why.html
    2. http://machinelearningmastery.com/overfitting-and-underfitting-with-machine-learning-algorithms/
    3. http://math.stackexchange.com/questions/141381/regression-vs-classification

Posted by Krishna Kishore Koney
Labels: AI (Artificial Intelligence), AI/ML, CLOUD COMPUTING, DATA SCIENCE, PYTHON PROGRAMMING

Apache Hadoop Info Dump ..

HDFS lacks the random read/write capability. It is good for sequential data access. And this is where HBase comes into picture. It is a NoSQL database that runs on top your Hadoop cluster and provides you random real-time read/write access to your data. Hadoop can perform only batch processing, and data will be accessed only in a sequential manner. That means one has to search the entire dataset even for the simplest of jobs. A huge dataset when processed results in another huge data set, which should also be processed sequentially. At this point, a new solution is needed to access any point of data in a single unit of time (random access). Like all other FileSystems, HDFS provides us storage, but in a fault tolerant manner with high throughput and lower risk of data loss(because of the replication).But, being a File System , HDFS lacks random read and write access. This is where HBase comes into picture. It’s a distributed, scalable, big data store, modelled after Google’s BigTable. Cassandra is somewhat similar to hbase.
You can store both structured and unstructured data in Hadoop, and HBase as well. Both of them provide you multiple mechanisms to access the data, like the shell and other APIs. And, HBase stores data as key/value pairs in a columnar fashion while HDFS stores data as flat files. Some of the salient features of both the systems are :

Hadoop:
  1. Optimized for streaming access of large files.
  2. Follows write-once read-many ideology.
  3. Doesn't support random read/write.
HBase:
  1. Stores key/value pairs in columnar fashion (columns are clubbed together as column families).
  2. Provides low latency access to small amounts of data from within a large data set.
  3. Provides flexible data model.
Hadoop is most suited for offline batch-processing kinda stuff while HBase is used when you have real-time needs.
An analogous comparison would be between MySQL and Ext4.
HDFS: Hadoop Distributed File System Its Optimized for streaming access of large files and stores files that are 100 s of MB upwards on HDFS and access through Map reduce Its Optimized use cases where once we write and read many times
HBASE: HBASE is an Open Source ,non relational distributed database and its a part of apache software foundations Apache Hadoop runs on top HDFS.HBASE does not support a structured query language like sql
Hadoop is a set of integrated technologies. Most notable parts are: 
  1. HDFS - distributed file system specially built for massive data processing 
  2. MapReduce - framework implementing Map Reduce paradigm ove distributed file systems, where HDFS - one of them. It can work over other DFS - for example Amazon S3. 
  3. HBase - distributed sorted key-value map built on top of DFS. In best of my knowledge HDFS is only DFS implementation compatible with HBase. HBase needs append capability to write its write ahead log. For example DFS over amazon's s3 does not support it.
"If you want to know about Hadoop and Hbase in deatil, you can visit the respective home pages -"hadoop.apache.org" and "hbase.apache.org". you can also go through the following books if you want to learn in depth "Hadoop.The.Definitive.Guide" and "HBase.The.Definitive.Guide".

I recommend you this talk by Todd Lipcon (Cloudera): "Apache HBase: an introduction" - http://www.slideshare.net/cloudera/chicago-data-summit-apache-hbase-an-introduction

“Apache Difinitive Guide” Tom White Book

Distributed programming – Partial failure & recovery
Data analytics everywhere

Hadoop Clusters => all Linux commodity nodes
Google gfs
Google hdfs

Nutch engine – Hadoop creator(doug cutting)

Hadoop is all bout JAVA (other lang support minimal(meaning only map & reduce not other functionality)

HDFS is virtual distributed file system implemented in JAVA

Hadoop pipelining => this is how hadoop provides replication/mirroring

Default replication factor(redundancy) of hadoop 3

Classic (or) high availability hadoop cluster

STONITH alogorithm

Hadoop Federation => namespace for various clusters

Bit Rot

Hadoop partial failure - MTBF (mean time between failures)

Hadoop Rack Awareness

Windows Hadoop => Microsoft HD Inside

Hadoop =>

MN = master nodes

NN =  name node
Secondary name node = offload node; House keeping (not a back-up node ; it’s classic code)
Stand-by name node = back-up name node

DN = data nodes
WN = worker nodes
SN = slave nodes
TN = task nodes

Hadoop Applications => Text mining, Sentiment analysis, prediction models, index building, collaborative filtering, graph creation and analysis
Nature of Hadoop => Batch Processing, huge volume of data

HDFS => storage(Files in HDFS are write-once), Batch Processing & sequential Reads( no random reads )
Map-Reduce => Processing

Two master nodes =>

Name Node : manages HDFS (meta data about files , blocks); Name Node daemon always runs;
Job Tracker : manages Mapreduce

Hadoop fs => Hadoop shell
example: hadoop fs -ls
Hadoop has it’s own HDFS file system & Hadoop users ( example: /user/krishna)

MRv1 daemons => Job Tracker, Task Tracker

MRv2(MapReduce V2) => Resource Manager, Application master, Node Manager, JobHistory

Impala is based on C++ & it’s pretty fast. Impala is similar to Hive. It does not use MapReduce but has it’s own Impala agents.

Streaming API - Mappers & Reduce only in python, ruby … all other stuff(practitioners ..) all have to be in JAVA only ..

We need Hadoop streaming jar file ..

MRUnit is built on JUnit and uses mockito framework
LocalJobRunner

InputSplit means what HDFS blocks allocated ..

MRUnit gives us InputSplit(It’s nothing but blocks), MapDriver, ReduceDriver, MapReduceDriver ..

withInput()
withOutput()
runTest()
resetOutput()
withInput()
withOutput()
runTest()

inheritance => “is a” kind of relationship
interface => “is a capability” kind of relationship

Hadoop fs => talking to HDFS
Hadoop jar => talking to job tracker

ToolRunner => ability to pass commandline arguments. It gives Generic Options

Combiner is mini-reducer. It resides on Mapper node. Distributed cache is READ-ONLY. Distributed cache is available in LOCAL working directory.

To debug MapReduce, goto Psuedo mode (all on the same machine). Use LocalJobRunner for debugging code. No name-node, job-tracker, HDFS … all on same machine ( It’s just like executing your Java program on the local machine as Driver code executes on client  and has main() api) ..

Each Hadoop node runs a small web-server so you can see all logs …

If you do not need Reducers then setNumReduceTasks(0)

Never try to do RDBMS jobs in Hadoop MapReduce but use more of PIG, HIVE.  Example : join
    Hadoop is not good for relational processing; RDBMS is meant for this kind of processing.

If you have to JOIN - map side join , reduce side join

Map side join – keep side data in memory(under setup()) & comparison in map() api

Reduce side join – complex & weird; It used composite key; sorting comparator & grouping comparator

Gzip is not splittable

LZO, Snappy is splittable compression technology. As Hadoop needs to distribute files across the HDFS, it needs a splittable compression algorithm.

Hadoop strives for DATA LOCALITY.

Terasort

Hadoop is good for OLAP(analytical). It’s kind of offline.
OLTP is real-time. It need instantaneous responses.

Sqoop => sqll to Hadoop & Hadoop to sql. CLoudera sqoop has connectors for all RDBMS vendors.
Sqoop starts 4 mappers when we try to import the database.
Sqoop user-guide: https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html

Standard is –
  1. Use Hadoop for ETL operations (OLAP)
  2. Populate the Hadoop output to a RDBMS (OLTP)
  3. Use BI tools on the RDBMS generated (OLTP)
BI Tools => Cognos, Pableau, Informatica, TerraData

Cloudera Impala is trying to bridge the gap beween Hadoop & RDBMS performance. Cloudera Impala does not use MapReduce.

Spark is replacement of MapReduce for developers(technical). It sits above HBASE (or) HADOOP.

Hadoop MapReduce map() is called for each line in your file for processing, so never connect/load to database in map() api; do it in setup() API

Cloudera Flume => Gather all Log files( syslog, web logs …) and submit to Hadoop.
example: gather syslog from all slaves & submit to Hadoop for processing.

Hive & Impala use SCHEMA on read not write.
Hive has meta database (of Apache Derby). Hive is closely integrated with Java/Python; I mean Hive can use the JAVA APIs that we already have !
Hive has UI tool called Hue.
How Hive works: It create as table pointing to file in HDFS; All HQL queries are executed via table on HDFS file using MapReduce ( All MapReduce joins using composite keys in the background).

Cloudera Impala is not using MapReduce and has it’s own agents. Hive & Impala are for SQL-developers.

Pig => All pig scripts get converted to MapReduce jobs. It works directly on the HDFS file.

Oozie => Apache workflow scheduler tool ( all configuration in XML file).

Miscellaneous:

MapReduce => For programmers & Full control (JAVA code)
Ping, Hive and Impala => For Business Analysts

Pig, Hive and Impala are used in conjunction with Data visualization tools like qlickview, tableau ..

Hadoop Hive Web UI tools  - Hue, Beeswax

Hadoop Pipelining is what replicates/mirrors the mappers.

If job failed 4 times it’s taken out by HDFS

Avro is schema evolution

waitForCompletion => Sync
submit => Async

Any language that can read standard-input & emit standard-output can be used to write MapReduce jobs.
Streaming API(python …) can be used only with MAP REDUCE api ( not for combiners, partitioners ..).

MRUnit => gives it’s own Driver & input split

ToolRunner => allows passing commandline args

Combiner => reduce network traffic.

Default partitioner => hash partition, override getpartitioner() API

Mapper/Reducer => does not guarantee call to cleanup() ..

InpputFormat gives data blocks to Mapper; Mapper outputs key & iterable values ; Reducer takes them and sorts & merges ..

Apache Flume => gets LOG files to Hadoop

Apache sqoop => gets RDBMS to Hadoop

Posted by Krishna Kishore Koney
Labels: BIG DATA ANALYTICS, CLOUD COMPUTING, PYTHON PROGRAMMING

Python Integration with C++/Java

There are two, standard built-in ways of integrating Python with a Programming Language like C++/Java.

The first is writing an extension, which involves creating a wrapper for C that Python imports, builds, and then can execute.

A second built-in way of integrating these languages is called embedding, and is where C++/Java are given direct access to the Python interpreter.

C++ & Python Integration:

Boost.Python -
SIG for development of Python/C++ integration using Boost.Python - http://www.python.org/community/sigs/current/c++-sig/http://www.boost.org/doc/libs/1_37_0/libs/python/doc/index.html

Other Tools:
Extending and Embedding the Python Interpreter - http://docs.python.org/extending/
Extending Python with C - http://www.developer.com/lang/other/article.php/2191421

Java & Python Integration:

1. Jython http://www.jython.org/Project/
http://www.slideshare.net/ws.cander/jython-integrating-python-and-java-presentation

2. JPype - http://jpype.sourceforge.net/

3. jPython - Glue It All Together With Python –
http://www.python.org/doc/essays/omg-darpa-mcc-position.html
http://www.python.org/workshops/1997-10/proceedings/hugunin.html

Posted by Krishna Kishore Koney
Labels: PYTHON PROGRAMMING, SCRIPTING LANGUAGES

Python Overview

Python is an dynamic object-oriented programming language that can be compared with Java and Microsoft's .NET-based languages as a general-purpose substrate for many kinds of software development. It offers strong support for integrating with other technologies, higher programmer productivity throughout the development life cycle, and is particularly well suited for large or complex projects with changing requirements.

Python's key strengths include:

1. Prototyping in Python is quick and easy, and often results in development of the final system in Python. The agile nature of the language, and the ease of refactoring code makes for rapid development directly from the initial prototype.

2. Application scripting is a snap with Python's tight integration with C/C++ and Java. Python was designed from the ground up to be embeddable and serves as an excellent choice as a scripting language for customization or extension of larger applications.

3. Software Testing benefits from Python's strong integration and text processing capabilities, and Python comes with its own unit testing framework.

4. Web development from simple CGI scripting to high-end web application development with mega-frameworks such as Django and Turbogears, the Zope application server, Plone content management system, Quixote web application framework, or a even a home-grown solution based on Python's extensive and easy to use standard libraries. Python provides interfaces to most databases, powerful text processing and document processing facilities, and plays well with other web technologies.

5. Numeric and scientific applications make use of the Python Imaging Library, VTK and MayaVi 3D Visualization Toolkits, Numeric Python, ScientificPython and many other tools available for numeric and scientific applications. Many of these are supported by the Enthought Python Distribution.

6. Desktop development using wxPython, PyQt, or PyGtk for high-quality GUI applications. Protect your investment by basing on open technologies, with deployment to most operating systems. Support for other GUI frameworks, such as MFC, Carbon, Delphi, X11, Motif, and Tk, is also available.

Popular Python IDEs:


  • Eclipse with PyDev
  • Eric
  • IDLE
  • Komodo IDE
  • PyCharm
  • Wing IDE





Python Popular Full-Stack Web Frameworks
Link : http://wiki.python.org/moin/WebFrameworks

A web application may use a combination of a base HTTP application server, a storage mechanism such as a database, a template engine, a request dispatcher, an authentication module and an AJAX toolkit. These can be individual components or be provided together in a high-level framework.

These are the most popular high-level frameworks. Many of them include components listed on the WebComponents page.

1. Django (0.96.1 Released 2007-10-26) a high-level Python Web framework that encourages rapid development and clean, pragmatic design

2. Pylons (0.9.6.2 Released 2008-05-28) a lightweight Web framework emphasizing flexibility and rapid development. It combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python Web framework. It's also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility but only if you need it. Out of the box, Pylons aims to make Web development fast, flexible and easy. Pylons is built on top of Paste (see below).

3. TurboGears (1.0.4.4 Released 2008-03-07) the rapid Web development megaframework you've been looking for. Combines CherryPy, Kid, SQLObject and MochiKit. After reviewing the website check out: QuickStart Manual

4. web2py (currently version 1.37) Everything in one package with no dependencies. Development, deployment, debugging, testing, database administration and maintenance of applications can be done via the provided web interface. web2py has no configuration files, requires no installation, can run off a USB drive. web2py uses Python for the Model, the Views and the Controllers, has a built-in ticketing system to manage errors, an internationalization engine, works with MySQL, PostgreSQL, SQLite , Oracle, MSSQL and the Google App Engine via an ORM abstraction layer. web2py includes libraries to handle HTML/XML, RSS, ATOM, CSV, RTF, JSON, AJAX, XMLRPC, WIKI markup. Production ready, capable of upload/download of very large files, and always backward compatible.

5. Grok (0.13 Released 2008-06-23) is built on the existing Zope 3 libraries, but aims to provide an easier learning curve and a more agile development experience. It does this by placing an emphasis on convention over configuration and DRY (Don't Repeat Yourself).

6. Zope (2.10.4 Released 2007-07-04, 3.3.1 Released 2007-01-14, Zope 3.4.0c1 Released 2008-01-31) Being the grandaddy of Python web frameworks, Zope has grown into a family of frameworks over the years. Zope 1 was released in 1999. Zope 2 is both a web framework and a general purpose application server, today it is primarily used by ContentManagementSystems. Zope 3 is both a standalone framework and a collection of related libraries, which are also included with newer releases of Zope 2. All of the Zope frameworks include the ZODB, an object database for Python.


Links:

Python Tutorial - http://www.penzilla.net/tutorials/python/index.shtml

Python Links - http://remus.rutgers.edu/cs314/f2007/ryder/lectures/Python2-19.pdf

Python Articles - http://www.devshed.com/c/b/Python/

The Python Regular Expression Debugger (Kodos) - http://sourceforge.net/project/showfiles.php?group_id=43860

Python for Java Programmers : http://www.cs.wlu.edu/~necaise/python/Main/TableOfContents

Python Regular Expressions - http://www.amk.ca/python/howto/regex/

Python HOWTOs - http://docs.python.org/dev/howto/index.html

Python for C++ guys - http://www.ibiblio.org/g2swap/byteofpython/read/

Thinking in Python Book - http://www.mindview.net/Books/TIPython

Dive Into Python Book - http://diveintopython.org/toc/index.html

Perl & Python Books - http://www.techbooksforfree.com/perlpython.shtml


Python resources - http://www.bogotobogo.com/python/pytut.php



Videos:

Python overview - 

  • https://www.youtube.com/watch?v=N4mEzFDjqtA
  • https://www.youtube.com/watch?v=rkx5_MRAV3A
  • https://www.youtube.com/watch?v=jlzePDUgL_8
  • https://www.youtube.com/watch?v=RrPZza_vZ3w
  • https://www.youtube.com/watch?v=nWoSEXHVl7c
Python object oriented programming -
  • https://www.youtube.com/watch?v=FfWE9pvAnT0
  • https://www.youtube.com/watch?v=X0mZXVkiaOo&index=2&list=PL9ooVrP1hQOHY-BeYrKHDrHKphsJOyRyu
  • https://www.youtube.com/watch?v=pPHmtAGG3mc
Python: Zero to Hero - 
  • https://www.youtube.com/watch?v=9uq3w6JJS00
  • https://drive.google.com/folderview?id=0B5BO97vHUkN2fjR2NjFqNDZvSldBWTRoNXdYU01uRV9iLWtxeHpDbERLZ0ZndHRMWnRHdTA&usp=sharing_eid

Posted by Krishna Kishore Koney
Labels: PYTHON PROGRAMMING, SCRIPTING LANGUAGES
Older Posts Home
Subscribe to: Posts (Atom)

The Verge - YOUTUBE

Loading...

Hard Fork Podcast

Loading...

Dwarkesh Patel Podcast

Loading...

SemiAnalysis Podcast (Dylan Patel)

Loading...

Andrej Karpathy Youtube Channel

Loading...

Microsoft Research

Loading...

Hugging Face - Blog

Loading...

AI at Wharton

Loading...

Stanford Online

Loading...

MIT OpenCourseWare - YOUTUBE

Loading...

NPTEL IISC BANGALORE - YOUTUBE

Loading...

HackerRank - YOUTUBE

Loading...

FREE CODE CAMP - YOUTUBE

Loading...

BYTE BYTE GO - YOUTBUE

Loading...

GAURAV SEN INTERVIEWS - YOUTUBE

Loading...

Tanay Pratap - YOUTUBE

Loading...

Ashish Pratap Singh - YOUTUBE

Loading...

Kantan Coding - YOUTUBE

Loading...

SUCCESS IN TECH INTERVIEWS - YOUTUBE

Loading...

IGotAnOffer: Engineering - YOUTUBE

Loading...

DEEPLEARNING AI - YOUTUBE

Loading...

MIT News - Artificial intelligence

Loading...
My photo
Krishna Kishore Koney
View my complete profile
" It is not the strongest of the species that survives nor the most intelligent that survives, It is the one that is the most adaptable to change "

View krishna kishore koney's profile on LinkedIn


Failure is not falling down, it is not getting up again. Success is the ability to go from failure to failure without losing your enthusiasm.

Where there's a Will, there's a Way. Keep on doing what fear you, that is the quickest and surest way to to conquer it.

Vision is the art of seeing what is invisible to others. For success, attitude is equally as important as ability.

Monthly Blog Archives

  • ▼  2026 (7)
    • ▼  July (2)
      • REST vs GraphQL
      • Nautobot: Opensource Network Source of Truth (NSoT...
    • ►  May (1)
    • ►  April (1)
    • ►  March (3)
  • ►  2025 (4)
    • ►  October (1)
    • ►  August (1)
    • ►  May (1)
    • ►  April (1)
  • ►  2024 (18)
    • ►  December (1)
    • ►  October (2)
    • ►  September (5)
    • ►  August (10)
  • ►  2022 (2)
    • ►  December (2)
  • ►  2021 (2)
    • ►  April (2)
  • ►  2020 (18)
    • ►  November (1)
    • ►  September (8)
    • ►  August (1)
    • ►  June (8)
  • ►  2019 (18)
    • ►  December (1)
    • ►  November (2)
    • ►  September (3)
    • ►  May (8)
    • ►  February (1)
    • ►  January (3)
  • ►  2018 (3)
    • ►  November (1)
    • ►  October (1)
    • ►  January (1)
  • ►  2017 (2)
    • ►  November (1)
    • ►  March (1)
  • ►  2016 (5)
    • ►  December (1)
    • ►  April (3)
    • ►  February (1)
  • ►  2015 (15)
    • ►  December (1)
    • ►  October (1)
    • ►  August (2)
    • ►  July (4)
    • ►  June (2)
    • ►  May (3)
    • ►  January (2)
  • ►  2014 (13)
    • ►  December (1)
    • ►  November (2)
    • ►  October (4)
    • ►  August (5)
    • ►  January (1)
  • ►  2013 (5)
    • ►  September (2)
    • ►  May (1)
    • ►  February (1)
    • ►  January (1)
  • ►  2012 (19)
    • ►  November (1)
    • ►  October (2)
    • ►  September (1)
    • ►  July (1)
    • ►  June (6)
    • ►  May (1)
    • ►  April (2)
    • ►  February (3)
    • ►  January (2)
  • ►  2011 (20)
    • ►  December (5)
    • ►  August (2)
    • ►  June (6)
    • ►  May (4)
    • ►  April (2)
    • ►  January (1)
  • ►  2010 (41)
    • ►  December (2)
    • ►  November (1)
    • ►  September (5)
    • ►  August (2)
    • ►  July (1)
    • ►  June (1)
    • ►  May (8)
    • ►  April (2)
    • ►  March (3)
    • ►  February (5)
    • ►  January (11)
  • ►  2009 (113)
    • ►  December (2)
    • ►  November (5)
    • ►  October (11)
    • ►  September (1)
    • ►  August (14)
    • ►  July (5)
    • ►  June (10)
    • ►  May (4)
    • ►  April (7)
    • ►  March (11)
    • ►  February (15)
    • ►  January (28)
  • ►  2008 (61)
    • ►  December (7)
    • ►  September (6)
    • ►  August (1)
    • ►  July (17)
    • ►  June (6)
    • ►  May (24)
  • ►  2006 (7)
    • ►  October (7)

Blog Archives Categories

  • .NET DEVELOPMENT (38)
  • 5G (5)
  • AI (Artificial Intelligence) (16)
  • AI/ML (10)
  • ANDROID DEVELOPMENT (7)
  • BIG DATA ANALYTICS (6)
  • C PROGRAMMING (7)
  • C++ PROGRAMMING (24)
  • CAREER MANAGEMENT (6)
  • CHROME DEVELOPMENT (2)
  • CLOUD COMPUTING (47)
  • CODE REVIEWS (3)
  • CYBERSECURITY (12)
  • DATA SCIENCE (4)
  • DATABASE (14)
  • DESIGN PATTERNS (9)
  • DEVICE DRIVERS (5)
  • DIY (3)
  • DOMAIN KNOWLEDGE (14)
  • EDGE COMPUTING (4)
  • EMBEDDED SYSTEMS (9)
  • ENTERPRISE ARCHITECTURE (10)
  • IMAGE PROCESSING (3)
  • INTERNET OF THINGS (2)
  • J2EE PROGRAMMING (10)
  • KERNEL DEVELOPMENT (6)
  • KUBERNETES (20)
  • LATEST TECHNOLOGY (25)
  • LINUX (9)
  • MAC OPERATING SYSTEM (2)
  • MOBILE APPLICATION DEVELOPMENT (14)
  • PORTING (4)
  • PYTHON PROGRAMMING (6)
  • RESEARCH AND DEVELOPMENT (1)
  • SCRIPTING LANGUAGES (8)
  • SERVICE ORIENTED ARCHITECTURE (SOA) (10)
  • SOFTWARE DESIGN (13)
  • SOFTWARE QUALITY (5)
  • SOFTWARE SECURITY (24)
  • SYSTEM and NETWORK ADMINISTRATION (4)
  • SYSTEM PROGRAMMING (4)
  • TECHNICAL MISCELLANEOUS (32)
  • TECHNOLOGY INTEGRATION (5)
  • TEST AUTOMATION (5)
  • UNIX OPERATING SYSTEM (4)
  • VC++ PROGRAMMING (44)
  • VIRTUALIZATION (8)
  • WEB PROGRAMMING (8)
  • WINDOWS OPERATING SYSTEM (13)
  • WIRELESS DEVELOPMENT (5)
  • XML (3)

Popular Posts

  • Windows FileSystem Mini Filter Driver Development
  • Windows Shutdown Messages/Events : WM_QUERYENDSESSION, WM_ENDSESSION
  • Nautobot: Opensource Network Source of Truth (NSoT) and Network Automation Platform
  • REST vs GraphQL

My Other Blogs/Channels

  • Career Management: Invest in Yourself
  • A la carte: Color your Career
  • Attitude is everything(Telugu language)
  • "Invest in Yourself" Youtube Channel (Telugu language)
WINNING vs LOSING

Hanging on, persevering, WINNING
Letting go, giving up easily, LOSING

Accepting responsibility for your actions, WINNING
Always having an excuse for your actions, LOSING

Taking the initiative, WINNING
Waiting to be told what to do, LOSING

Knowing what you want and setting goals to achieve it, WINNING
Wishing for things, but taking no action, LOSING

Seeing the big picture, and setting your goals accordingly, WINNING
Seeing only where you are today, LOSING

Being determined, unwilling to give up WINNING
Gives up easily, LOSING

Having focus, staying on track, WINNING
Allowing minor distractions to side track them, LOSING

Having a positive attitude, WINNING
having a "poor me" attitude, LOSING

Adopt a WINNING attitude!

Total Pageviews

Who am I

My photo
Krishna Kishore Koney

Blogging is about ideas, self-discovery, and growth. This is a small effort to grow outside my comfort zone.

Most important , A Special Thanks to my parents(Sri Ramachandra Rao & Srimathi Nagamani), my wife(Roja), my lovely daughter (Hansini) and son (Harshil) for their inspiration and continuous support in developing this Blog.

... "Things will never be the same again. An old dream is dead and a new one is being born, as a flower that pushes through the solid earth. A new vision is coming into being and a greater consciousness is being unfolded" ... from Jiddu Krishnamurti's Teachings.

Now on disclaimer :
1. Please note that my blog posts reflect my perception of the subject matter and do not reflect the perception of my Employer.

2. Most of the times the content of the blog post is aggregated from Internet articles and other blogs which inspired me. Due respect is given by mentioning the referenced URLs below each post.

Have a great time

My LinkedIn Profile
View my complete profile

Aryaka Insights

Loading...

Reid Hoffman - YOUTUBE

Loading...

Martin Fowler's Bliki - BLOG

Loading...

The Pragmatic Engineer

Loading...

AI Workshop

Loading...

CYBER SECURITY - YOUTUBE

Loading...

CYBER SECURITY FUNDAMENTALS PROF MESSER - YOUTUBE

Loading...