Saturday, December 3, 2016

Blockchain - BitCoin - moocs

Be on lookout for developments in "FinTech" (technology implementations in finance and business transactions).  "Follow the money" - tomorrow, money being manipulated and analyzed by technology, is where it is.  Let me know if you want to talk about it.

Univ of Nicosia (classes are in English, not to worry), and first online Masters degree on BlockChain / BitCoin.

Much more than digital currency.   Next class starts in February, but youtube videos of previous class in fall of 2016 are online - link below.


http://courses.dcurr.unic.ac.cy/course/view.php?id=29

========= other resources =====

Tuesday, November 8, 2016

libvirt - why it's important

http://libvirt.org/   is a foundation stone of many virtualization capabilities and where really interesting features are being added to cloud and virtualization.

for one area,  it is where software defined storage (SDS) inserts itself, for example, ceph provides software defined storage and makes it available to OpenStack as a swift interface.   Underneath, it is not part of OpenStack but so tightly integrates with OpenStack and works underneath, that tenants will never know nor detect any difference in their access to storage.

another, VMQoS examines the QoS (quality of service) issues internal to a complex service like OpenStack.   Conventional QoS talks about external connectivity (communications QoS), but what about the internal movement of data between compute and storage (through the network linking them)?   How is that measured and what assurances can be established, and corrected when the performance deviates beyond set limits?

it can also be an interesting attack surface for malicious actors since so much depends on libvirt

Saturday, October 1, 2016

Mirantis Fuel - deploy OpenStack

Using Mirantis 7.0 from https://www.mirantis.com/software/mirantis-openstack/releases/   - use the iso image to boot a virtual server under VirtualBox.

Mirantis can then deploy OpenStack to two other virtual servers.  Once the 2 "slave" servers are deployed, you can log on to the OpenStack console (Horizon) and create virtual servers, virtual networks (switches), virtual routers, import images of other cloud servers; for example from http://cloud-images.ubuntu.com/.

After deploying, I ran 'ifconfig -a' on all three systems, and grouped where the IP addresses appeared to be on the same subnet.  Note Horizon 172.16.0.3 is not a physical interface, it's a virtual IP on the compute node (slave1).















After deploying some instances of virtual networks and servers, here is how the virtual parts align with the physical parts:






































Observe that the 172.160.0.x address that is the "associated IP" for the internal virtual server (associated / mapped to the virtual server in 192.168.111.x), is in the same routing domain and IP address subnet as they physical 172.16.0.1 address of the Fuel server, the application virtual IP accessing Horizon at 172.16.0.3, and now the IP you will use to access the virtual server created by OpenStack.

Friday, May 6, 2016

mobile app dev tools - summary

https://www.educba.com/mobile-app-development-tools/

Home » eduCBA Blog » Mobile Apps » Mobile App Development Tools
Mobile App Development Tools

In the age of mobile phones and Smartphones, ‘Mobile app’ is a commonly heard term. Mobile app are small software applications that run on mobile phones or other mobile devices and serve some specific function or provide information on a particular topic. Some examples of mobile app that usually every smartphone comes preloaded with, are: calendar, calculator, e-mail, clock and weather information. Additional apps can be downloaded on the phone through app store native to the Operating System of the phone you own, such as: Apple’s App Store, Google Play, Windows Phone Store and BlackBerry App World, which are the distribution platforms for these apps.

Tuesday, May 3, 2016

Communicating securely over network connections

Communicating securely over networks, particularly systems exposed to public internet, is an ongoing challenge.   The bad news is, every criminal in the world who has access to the internet is constantly trying to break into your computer, your tablet, your smartphone, and your Raspberry Pi.  The good news is that there are very good, secure tools that are well recognized as "secure".  Some provisos apply:

1. configuration of software used for such communications, to disable features that are considered security weaknesses.
2. understanding that all software is defective in some way, it is a necessity to patch vulnerable software when you are notified, and for open source software, that means signing up for notifications
3. many free security capabilities include multi-factor authentication, including a personal and account-specific code generated on your smartphone, so only the person (presumably you) who is holding the smartphone, can log in to your account.

One of these tools is SSH, or Secure SHell.  There are many free versions:
-- OpenSSH for Linux
-- PuTTy for Windows
-- there are Java based SSH clients
-- there is even a Chrome browser plugin that runs SSH client

A properly configured SSH client and server connection might be called a "gold standard" of communication over public (untrusted) networks.

SSH is a mature technology that has many interested features and capabilities, well beyond a command line interface to a system:

A. SCP and SFTP for file transfer is encrypted using the same mechanisms in SSH
B. rsync can use SSH as the connection between synchronization of files between systems
C. Port forwarding is one of the most powerful and overlooked capabilities,   I'll post a link to a presentation on SSH in an upcoming blog entry.

However, a poorly configured SSH scenario only gives users and administrators an illusion and assumption of security,   For example, if no one actually checks or validates the server key that is presented at an initial connection from an SSH client, the user really has no idea whether they are connecting to a hostile server that is capturing all your communications.   This scenario is typically referred to as MITM, or "man in the middle" attack.

Friday, April 1, 2016

Blacksmith, Jedi, and Ethics

Great time at ISSA Chapter - talking about blacksmithing, making your own light saber, and including ethics considerations in everything you do.  Presentation at:
https://drive.google.com/drive/u/0/folders/0B7HntxpE-k80ZUVWZjZSdlFYRzA


The blacksmith forge is http://www.prospecthillforge.com/ .   Tell Carl West that Shukong sent you.

Thursday, March 31, 2016

ISSA New England Student Chapter at NorthEastern University 2016 March 31st

Presentation at:
https://drive.google.com/drive/u/0/folders/0B7HntxpE-k80ZUVWZjZSdlFYRzA


Python every where - more resources

Finding an online learning environment that matches your style, time available, mobile or larger screen, is rather like online dating:  some work out, but many encounters just don't find a "match".   Don't stop looking, though, if you have not yet found yours.   Here is a list of python resources --

http://noeticforce.com/best-free-tutorials-to-learn-python-pdfs-ebooks-online-interactive

I did not find coursera.org python course here, but I think it only means there is an abundance of resources to learn online.   Maybe one of these will work for you.

Friday, March 25, 2016

Rockblock global communications

http://www.rock7mobile.com/products-rockblock

The RockBLOCK Mk2 allows you to send and receive short messages from anywhere on Earth with a clear view of the sky. It works far beyond the reach of WiFi and GSM networks. Maybe you want to transmit weather information from mid-ocean? Or use it to control your robot in the middle of the desert? Perhaps you need to communicate in an emergency, when other networks might not be available? RockBLOCK can help you.

It is an option for http://www.fishpi.org/  - an autonomous vehicle (boat) that aims to cross the Atlantic ocean on its own solar powered motive force.

If you have not seen the Iridium satellite communications network, look it up.  https://en.wikipedia.org/wiki/Iridium_satellite_constellation   Coverage map (yes, cool):


Thursday, March 24, 2016

free eBook on Hadoop with Python

not sure how long this offer is available, but for now
http://www.oreilly.com/programming/free/hadoop-with-python.csp

hadoop is a distributed file system often used for Big Data (go ahead, google it) and this is the free ebook that introduces you to how python can interface with hadoop.

get it now, keep it in your digital library, refer to it when you start playing with big data

Sunday, March 20, 2016

EdX, Open Courseware, Udemy, Stackskills

EdX http://edx.org  includes MIT, home of one of the original open educational initiatives - 
Open Courseware.    http://ocw.mit.edu/index.htm   First courses in 2002 and 2003.  It is great to see Professor Gilbert Strang http://ocw.mit.edu/index.htm  is in the fray.   In a few lectures on linear algebra (many years ago) I learned there were actually THREE ways to solve them.   Strang is amazing.

Some additional resources:
Udemy has some free courses, you just have to look for them (check the "free" box):

Stackskills seems to be mostly paid courses.  https://stackskills.com/courses.

If you are part of a school or organization definitely check to see if they have already paid for an organizational subscription to any of the paid services.  


Friday, March 18, 2016

Wolfram on Pi

Online ebook on Mathematica
http://www.wolfram.com/language/elementary-introduction/
which comes in Kindle, .nb,

Also, an online app allows you to use Mathematica in the cloud at many fee levels, including FREE!
https://lab.open.wolframcloud.com/app/

even more wonderful, the raspberry pi has a free "home use license" for Mathematica as part of the standard raspbian image (currently "jessie")
Raspberry Pi
A full version of the Wolfram Language is available for the Raspberry Pi computer and comes bundled with the Raspbian operating system. Programs can be run from a Pi command line or as a background process, as well as through a notebook interface on the Pi or on a remote computer. On the Pi, the Wolfram Language supports direct programmatic access to standard Pi ports and devices.
Imagine a number of Mathematica programs on separate but network connected raspberry pi's !

Note there is a description of setting up a weather station on a pi, using Mathematica as the controlling computer.

Wednesday, March 16, 2016

Raspberry Pi image for live streaming video

http://datarhei.github.io/restreamer/

download image and burn to SD card to make your raspberry pi a streaming video camera
not really a programming exercise or learning, but shows what can be done with an inexpensive platform and camera

or, an alternate camera viewer that works with a browser
http://elinux.org/RPi-Cam-Web-Interface

scheduling tasks on PythonAnywhere to run on your schedule

a note from PythonAnywhere

Tick tock tick tock tick tock. It's the passage of time -- so familiar and yet, so mysterious; there's no good explanation for it in Physics! Will we ever truly understand it? Who knows...
But one thing's for sure, and that's the fact that you can HARNESS THE POWER OF TIME using PythonAnywhere Scheduled Tasks. Something we see you haven't had time to do yet, ho ho.[1]
So head on over to the Schedule tab where you'll be able to set any Python script (or, indeed, any other kind of script) to run on a regular basis
Free users can set tasks to run once a day, paying users can schedule hourly tasks
Here's a few ideas to get you started
  • Send yourself an email once a day reminding you to floss your teeth
  • Write a script to scrape daily prices 3D-printed plastic models of classic designs for fire hydrants. Finally you'll be able to make those crucial buying decisions at the best time!
  • Write a twitter bot that posts the time of day once a day, and helpfully @-mentions random people informing them of what time it is
  • Download all the books on project gutenberg that were written on that day in history, and compute a hash of their text contents, just because!
Incidentally, using a scheduled task can also be a good way to have a long-running task that restarts automatically if it crashes, for things like async workers, celery and so on. More info on this help page about long-running tasks.
The possibilities are endless.
[1]The original author of this email was already on their final warning for bad puns, and has now been summarily dismissed.
Happy Scheduling!
Glenn + the PythonAnywhere team.
Glenn Jones
Developer
PS These emails are designed to help you get the most out of PythonAnywhere, including pointing you towards some cool features that are a bit hidden. We'll only send out one a week, but if you want to, you can unsubscribe here.
PythonAnywhere: Develop and host Python from your browser
http://www.pythonanywhere.com/

A product from PythonAnywhere LLP
17a Clerkenwell Road, London EC1M 5RD, UK
VAT No.: GB 893 5643 79
Registered in England and Wales as company number OC378414.
Registered address: 28 Ely Place, 3rd Floor, London EC1N 6TD, UK

Sunday, March 6, 2016

Thursday, March 3, 2016

LearnCode Academy YT Channel

https://www.youtube.com/channel/UCVTlvUkGslCV_h-nSAId8Sw

LearnCode Academy on their own YouTube channel.
Pick and choose what topics you want to learn about.

Everybody has their own "course material" now...

Saturday, February 27, 2016

a long list

https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md

a very long list of resources, not all of them entirely without cost /fees -- when you have a moment browse through the list and you might be surprised what you find...

Friday, February 26, 2016

command line

very helpful tool is to know how to deal with the command line

https://www.codecademy.com/learn/learn-the-command-line


this command line is a terrific intro - follow it through to the end
nice thing about codecademy is that you can do bite size pieces and not have to think large scale -- every piece is chewable.


this command line is very much worth MASTERING.
objective: be able to teach someone every aspect of this, without resorting to notes.

the same command line interface is available in your ubuntu "terminal" or "xterm"
and in the "bash" console in pythonanywhere

what is code?

http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/

this is the best explanation of "what is code" - read it all the way to the end

WHAT IS CODE?|

BUSINESSWEEK JUNE 11, 2015
BY PAUL FORD

A message from Josh Tyrangiel
1
The Man in the Taupe Blazer

You are an educated, successful person capable of abstract thought. A VP doing an SVP’s job. Your office, appointed with decent furniture and a healthy amount of natural light filtered through vertical blinds, is commensurate with nearly two decades of service to the craft of management.

Copper plaques on the wall attest to your various leadership abilities inside and outside the organization: One, the Partner in Innovation Banquet Award 2011, is from the sales team for your support of its 18-month effort to reduce cycle friction—net sales increased 6.5 percent; another, the Civic Guidelight 2008, is for overseeing a volunteer team that repainted a troubled public school top to bottom.

You have a reputation throughout the organization as a careful person, bordering on penny-pinching. The way you’d put it is, you are loath to pay for things that can’t be explained. You expect your staff to speak in plain language. This policy has served you well in many facets of operations, but it hasn’t worked at all when it comes to overseeing software development.

Ubuntu linux

Ubuntu is one of many free linux distributions that you can easily install and will have python and other programming tools already installed and ready to use.

1. download the disk image ( .iso file)
2. burn to a DVD disk
3. boot your computer from that disk and either:

3a. run it "live" from the disk without touching your system
3b. install the operating system to your boot disk and replace your old one
3c. install Ubuntu linux beside your existing one, and boot to either.


This last one 3c, is great but you can only use one at a time (your original operating system or Ubuntu).

Actually more fun, when you get to that point, is to download and install a free desktop virtualization software (VMWare Player, VirtualBox, ..  ), create a virtual machine and boot that VM with the .iso image that you downloaded.    Everything in the VM (virtual machine) runs as if it were on a physical machine.  This needs enough memory and disk space, but you can create different workspaces for different projects.

Even on a single computer, you can create separate "virtual environments" using this: https://virtualenv.readthedocs.org/en/latest/  or read up http://docs.python-guide.org/en/latest/http://docs.python-guide.org/en/latest/  (hint: google "virtualenv" for latest info).




Thursday, February 25, 2016

w3schools

http://www.w3schools.com/xml/

XML
HTML
CSS
JavaScript
SQL
PHP
BootStrap

almost anything you want, free.

Come back when you need to learn XML.  This is a great resource.

free code resources

There are many online resources to learn coding on the internet - many are free.
This also means if you look around you will find one that suits your learning style.
Here, google is your friend.

A preliminary list:

Girls Who Code:
http://girlswhocode.com/  and their fb page https://www.facebook.com/GirlsWhoCode/?fref=ts

Coursera: Python for Everybody
https://www.coursera.org/learn/python is taught by Charles Severance, who also makes most of the courses in the series available at http://pythonlearn.com/  - code samples, and course materials are availabe in many formats:   For example:
Take The CourseChapter 1: Why program?Watch the video on YouTube,
Listen or download the Audio,
Watch or download the Video
You don't even have to have a computer to run python programs and access to a command shell, at PythonAnywhere:
https://www.pythonanywhere.com/
Click on the Help link and get some guidance in simple programming through creating a web application!

Even if you don't have a lot of time, you can code a little bit at a time with
CodeCademy
https://www.codecademy.com/  -- this site is great at providing hints and help every step of the way.