Morning Joe: Python-Is the Language Everyone is Trying to Create Already Around?

NodeJs, Ruby on Rails, VB Script and more are all seemingly targeted at creating an easier to code platform to replace Java,C++, and C# as dominant languages in certain spheres such as web and server development where quick deployment may mean more than a faster running language (Java and C# run at the same speed by the way). Each is hailed as a smaller, more compact language and yet each is fairly slow. It appears that the real title of simple to write replacement language that runs well on today’s fast and memory intensive machines came around in 1990. Meet Python, the utility knife language that can claim the title of “already done it” or “already on it” for just about every supposed advancement in programming for over the past 34 years. It is a strong scientific language in addition to being quick to deploy and easy to learn. Rather than bring about a comparison to the board game Othello, a second to learn but a lifetime to master, it is truly a language for all comers

The language is compact, weak typed, and can replace just about any Java code in half or even less lines of code.

Advantages

  1. Small and compact: most Python code is aimed at quick and easy deployment. Modules exist for just about anything (see the Python Package library or even your local Linux yum or rpm repository)
  2. Cross-platform
  3. Map, filter, and Reduce are already included in the standard modules.
  4. Weak typing allows for the guessing of types and reuse of variables more easily
  5. It supports nearly every server implementation and has for decades, from Apache to Nginx
  6. It works with Spring (included already in 2.7 or higher) and has a dedicated web framework in Djanjo
  7. Lambdas and list comprehension have existed well before Java 8, reducing code such as for loops to a single line.
  8. Python is both a scripting and object oriented language, giving access well beyond running code from the command line.
  9. Major organizations and key players have created applications ranging from the Google Apps Engine to OpenCV’s artificial intelligence algorithms and PyCuda for accessing the NVidia graphics card
  10. Engineers and scientists are increasingly using the language with microprocessor boards available at low cost (Raspberry Pi and the MicroPy boards are two of the Python based microprocessor boards)
  11. Modules are easy to deploy since all programs are already modules, much like with java classes accessing each other.
  12. Code can be deployed without actually pre-compiling anything (a benefit for quick access and a curse for runtime speed).
  13. Has extensive support for statistical and mathematical programming as well as graphing and image manipulation with MatPlotLib,OpenCv, Numpy, and SciPy
  14. Can manage and create subprocesses easily.
  15. Network Programming, web server programming with frameworks or cgi/fcgi, multi-processing, and other server development are less code intensive compared to C# and Java
  16. Installing new plugins can be done without an internet search from easy_install or the PIP repository and, on linux, from the rpm or yum repositories.
  17. Includes support for running other languages or can be used to control other runtime environments,the JVM included, using Cython for C,IronPython for .NET, and Jython for Java.
  18. Modules are available for most if not all databases from Oracle and PostgreSQL to MySQL as well as applications for big data such as Cassandra
  19. Developed by an open source community and monitored by a committee with a budding certification track co-developed by the publisher O’Reilly and the chair of the Python committee. The University of Washington also offers a certificate. I would consider this as more of a testament to the popularity and extensive coverage of the language as opposed to the solid certifications requiring extensive theoretical and/or technical knowledge from Cisco, CompTIA, or Oracle.
  20. Over 30 years of continuous development,even more than Java.

Disadvantages

  1. 1000 times slower than C or 100 times slower using CPython yet still comparable to or better than Ruby on Rails and the other “replacement” languages.
  2. Many modules require a variety of unstated dependencies discovered at installation time.
  3. Like Java, many of the activities require modules.

Morning Joe: When is It Time for Technical Writing in the Work Place?

I work at a startup. If you go unnoticed someone notices. The pay is lower but the people are nice. You learn who people are and teamwork receives the benefit. However, my starup is growing and communications are realing from the same revolving door policy. The solution is clearly technical writing and anyone would say creating a report for a massive project is always a good thing. However, when do simple installs need proposals? This is obviously a situational issue. Here are the factors I see going into this decision.

      How much time does the supervisor have? Creating paper creates flexibility but also says importance.
      How knowledgeable are your superiors? Will the request recipient be able to explain the problem and solution?
      How technical is the problem compared to the supervisors capabilities?
      How costly is the request? A formal report may be necessary.
      Do you have something other than supervisor level knowledge to offer without looking cocky?

You will need to assess the capabilities of the team members as well as higher-ups and technical writing allows you to sell the option.

Morning Joe: TOR May be Broken but Its Still Useful

TOR, unlike someone with higher powers wants you to believe is dead. In fact, a presentation you never heard about something that isn’t supposed to happen was pulled from devcon in Las Vegas just last week. However, TOR, not anonymous without improvement, is still a useful proxy server.

Consider how, every once in a while, I want to pull data from a site in a quick amount of time. I do not want to spend money on proxies since a client is only paying $50 per sheet of 10,000 to 20,000 records. The answer is TOR. Four to five proxies later with a decent timeout and I am acquiring data without paying $20 or more for proxies.

Tor may seem dead but long live TOR!