lewisjpaul
lewisjpaul
The Casual developer
62 posts
As a Professional Service Engineer, my job is to make sure the juggler never drops anything.
Don't wanna be here? Send us removal request.
lewisjpaul · 7 years ago
Text
Review of the OSI Model
Review of the OSI Model
TL:DR
In that case, I recommend watching  the OSI Model Demystified video by Eli the Computer Guy.
What is the OSI Model?
The Open Systems Interconnection (OSI) model is a reference guide to help manufacturers make sure components could communicate with each other.  Its a useful tool in troubleshooting.  Having a checklist to work through helps prevent people from making minor errors due to…
View On WordPress
2 notes · View notes
lewisjpaul · 7 years ago
Text
Getting an out dated Mac ready for automation testing development
  The original title of this post was “Lets get ready for fun automation testing with Webdriver.io!”  It became “Getting an out dated Mac ready for automation testing development”  This post is a cautionary tale.
Best practice is to update your machine regularly.  Updates will include security updates and other improvements to your OS.
For Security news and advice I recommend listening to SECURIT…
View On WordPress
1 note · View note
lewisjpaul · 9 years ago
Text
Are we cyberpunk yet?
The future is a moving target. From Star Trek to Honey, I Programmed the Blanket. In 1998 there were 4.8 billion microprocessors and only about 2.5% were for PCs.
Reading an article from 1999 about tech is almost like reading a Syfy movie script. Remember Furby? "Furby's forehead has a light sensor as well as an infrared transmitter and receiver, for Furby-to-Furby communication. Furby also has a sound sensor, a tilt sensor and touch sensors on its front and back and in its tongue." Walk through a modern toy store and almost anything seems possible. Parents can buy books that read themselves to children.
Pick up an Energy drink during lunch and you'll probably pass by a newspaper headline saying the end is near. Is it really? In a world where a diabetic can manage his or her health through an insulin pump app on an iPhone, can you say the world is spiraling out of control? The Internet of Things should feel like a massive revolution, but instead its taken for granted. I'm not sure if its the success of design or marketing, but I'll take it as a positive sign.
2 notes · View notes
lewisjpaul · 9 years ago
Text
Stress testing your application to embrace chaos
The easy way out of QA is to only test for ideal circumstances. If your application is not a ladder to the end result, it risks breaking down into chaos for users. Random dynamic variables as part of your test cases are an excellent way to test the limit of your code. Did you foresee the input being so small? Did you realize it was possible to enter such large input? Or... did you hope the data would be just right... Nassim Nicholas Taleb wrote an excellent book, "Antifragile: Things That Gain from Disorder", the drives home what we already know to be true. There is growth through discomfort. Systems that get feedback know how to become stronger in their environment. Systems that can't process feedback are doomed to be washed away from the tides of history. Soreness from the gym? That's your muscles repairing themselves to become stronger. Code failed tests? Good, that's an opportunity to refactor it to excellence. Don't have time to refactor? At least you know thyself. That's food for thought.
0 notes
lewisjpaul · 9 years ago
Text
Reboot: Odyssey Writing Workshop’s home page
As we travel the world wide web we see sites that date back to when that phrase was cool. Keeping a site up to date can be costly and time consuming, especially to organizations with limited resources and a focus outside of technology.
I came across the site Volunteer Match. Its basically a matching site for people who have the skills to help non-profits in need. They also have opportunities for developers to give back.
One organization that looked like it could use help is the Odyssey Writing Workshops Charitable Trust, a non-profit providing workshops for fantasy and science fiction writers. The site is a bit dated and doesn't look great on mobile, but you can tell when it was first created it was the ferrari of its day.
I decided to give it a tune up. Instead of the flood of text and links navigation links, I created a version of their homepage that's responsive and less overwhelming on my cellphone.
My reimagined version of the Odyssey Writing Workshops Charitable Trust home page. Please feel free to let me know what you think.
1 note · View note
lewisjpaul · 10 years ago
Text
Bobby
Rare is it to meet a hero in your adulthood. When one is a child a hero is easy to find, anyone who can pick you up or reach the cookie jar. Saying "When I grow up. . ." was enough to inspire images of adult heros. As an adult meeting someone who could inspire the best in us is rare, and even fewer times as an adult do we have the honor to know that person as a friend. My friend Robert Lichtman was that rare hero you meet when you can appreciate greatness. Fort Leonard Wood, Missouri, 2007. His basic training field exercise coincided with a horrible winter chill. Sitting there shaking, he only ate the crackers from his Army supplied Meal Ready to Eat (MRE) bag. The First Sargent walked over concerned, "Specialist you have to eat. There's only three ways to stay warm, external heat, working out and eating. It's too cold to skip any one." Bobby gave him a knowing nod and replied "Yes First Sargent, but my Drill Sergeant said there's no kosher MREs to eat." The First Sargent marched off and a moment later returned with a box of kosher meals. Bobby gratefully thanked him, but the Sargent replied "Don't thank me. I brought them because I'm also Jewish." Bobby was a musician, filmmaker, counselor, analyst, officer, and one of best men I've ever met. His integrity and understanding that there's growth through discomfort are values I'll always remember him by. Its hard to think of a world without him, but he has left it a better place than he found it.
0 notes
lewisjpaul · 11 years ago
Text
That's a lot of weight
Client calls. You get an urgent email. They need thousands of payloads sent to the messaging queue. This particular system has not been automated. Sometimes ya gotta code quick. Its going to smell, but we having staging for testing.
Tumblr media
Perhaps we're lucky and we're executing a program that takes parameters from a txt file. Lets learn a little Python and get to automation!
Tumblr media
Helpful references Python Files I/O Time access and conversions
0 notes
lewisjpaul · 11 years ago
Text
Sinatra's after hours ditty
Tumblr media
Words can be a wondrous thing. They can make you happy or glum. George Carlin was famous for pushing the limits of acceptable language, most daringly with his "7 words you can't say on television" monologue. In honor of the great comedian I made a Sinatra app that plays with the Twitter API. Has a friend recently used one of these words? Perhaps you'd just like to see some random profane tweets but your feed is as clean as morning dew. If that's you, check out my George Carlin Tribute Its been awhile since I deployed a sinatra app and I'm happy to see Heroku has made it even easier to protect your keys and tokens. You can now set up environment variables directly on Heroku for your app. Safer, faster set up for those hard to put away keys.
Select your app
Settings
Under Config Variables
Tumblr media
Select to Reveal Config Vars
Now you get to set up your environment variables!
Tumblr media
0 notes
lewisjpaul · 11 years ago
Text
Clearance? Java
Sometimes you'll need to keep aspects of the class away from the public's eyes. The public methods can retrieve and set values, allowing you to access private members of the class. In this example we'll create methods to access or change private data. The point here is to avoid direct contact of your private attributes by your public class, and instead access them through specialized "set" and "get" functions. Making everything public may seem tempting, but restricting the flow of data allows you to better maintain your data's integrity by keeping your logic train on track.
Tumblr media
Output: William Wallace the cat responds to one master, Freedom. Robert The Bruce, the cat responds to one master, King Edward 'Longshanks'.
0 notes
lewisjpaul · 11 years ago
Text
Security usability is Hard when you can't find the login
The gatekeeper to a user experience on a website is its login authorization system. What will it be? RSA key required for a really strong level of user verification or a standard email address and password? One site that could use improvement is the VFW of NY website.
Tumblr media
The NY VFW suffers from feature creep. Its organization is random, for example the Men's Auxiliary has its own tab but the Women's Auxiliary link is under the VFW tab. To even locate the account login you need to first go to the VFW tab. The front end of the site can be frustrating to new users. Instead of building the site from the perspective of the average new user the layout appears to have been built from the view of a select few. Many states report having a difficult time recruiting younger members, one reason could be the disconnect between website expectations, an important one is that the login or new user links be clearly visible and easy to find.
0 notes
lewisjpaul · 11 years ago
Text
Java Constructor and our favorite cats
Traits of a Java Constructor - No return type - Its name MUST match the name of the class How else could java know its a constructor? - Ran whenever a new object of that class is created - Data initialized to default, or missing that to 0 Default Constructor: Takes no arguments Function names should have meaning. If you want to keep using the same function names in Java, but take in different parameters, ya gotta overload the system. Method Overloading, leaves a Signature Signatures do not Include the data type returned by the function, but they give you an idea of what their family of methods are like. - Same Name - Take different parameters - Could return something different Overloading Constructors The natural next step is to account for other data possibilities. Overloading your Contractors allows you to create a flexible class. Multiple constructor functions lets you create new class instances with more freedom. Keeping it DRY We can avoid repeating ourselves by using constructors to call upon other constructors to fill in the blanks. The following is a Java trick that only works with Constructors... this is a keyword that lets you invoke another constructor from within a constructor. This method call must appear as the first line of the constructor making the call. Think of this rule as a safety net saving you from creating an object with conflicting constructors. Here's an example,
Tumblr media
Output: Gambit the Mountain Lion has 4 legs and its true that he's a cat. Meg the American Shorthair has 4 legs and its true that she's a cat. Ananasi the spider has 8 legs and its false that she's a cat.
Tumblr media
0 notes
lewisjpaul · 11 years ago
Text
Databases never seemed to be static things….
SQL is the queen of Relational Database Management Systems (RDBMS). RDBMS are enhanced when taking advantage of XML. XML provides tags that can be included in a text document in order to define it’s structure, allowing for greater management and manipulation of your data. If you want to be anti-fragile, then its time to build a Data Warehouse. Your going to need your Data Warehouse to be malleable, but also representing your organization’s history. If you find yourself growing beyond a one stop shop, then you may need to plan building data marts, subsets for your Data Warehouse that have a particular data focus. Replication is a beautiful thing Consider the Publisher, owner of data, defines the data given to subscribers, at different locations. Sometimes subscribers need to write back to the publisher to enhance the story. That’s when we’ll call on a merge replication, so the subscriber’s contribution can synchronize with the publisher’s. Merge Replication is great when you need to allow multiple users to develop data independently and later unit their information. Data Warehouse parties can be exclusive Context matters. Constraints on your data are vital, if none of the data is unique then its hard to make it work anything. Its up to you to set the Rules on what data types are acceptable in a column. Its hard to find the answer for ‘2 + apple.’ Not every table is an island You’re going to need ways of confidently importing and moving data from multiple sources regularly. Depending on the services you provide you may need to conduct Online Transaction Processing (OLTP) to keep tabs on your users’ exchanges of data. Storing this information will allow you to figure out trends in your data warehouse later.
0 notes
lewisjpaul · 11 years ago
Text
EdX and Java BlueJ Basics
I'm currently taking COMP102x Introduction to Computing with Java on edX. While a lot of it is review, and I recommend going through a book so you don't have to wait for next week's lecture, taking an online course does offer some benefits. Primarily its the approach, learning about the same topic but from different perspectives and with different assignments brings new experiences. I'm currently halfway through the edX Intro Java course. They use BlueJ, which making practicing Java easy, but its best to practice as you'll actually work. For me, that means using Eclipse. If you are starting Java for the first time I do recommend playing with BlueJ. Below is a short guide to using this fun easy IDE. How to install BlueJ on a Mac 1. Visit http://www.bluej.org/ 2. Choose
Tumblr media
How to add libraries 1. Click on “BlueJ” 2. Choose “Preferences” 3. switch to the “Libraries” tab 4. Click Add 5. Select library to add You'll have to restart the virtual machine for these changes to take effect. How to create a new project 1. Click "Project" 2. New Project 3. Save the project at the desired location How to create a New Class 1. On the left hand side, choose "New Class..." 2. Create a Class Name and leave the “Class Type” as “Class” 3. Click OK 4. You'll see your new class appear as
Tumblr media
5. Right click on the new class 6. Select "Open Editor" to view the source code editor 7. Delete the default code so you can write your own.
Tumblr media
Reopening BlueJ Projects 1. Choose "Project" 2. "Open Project" 3. Locate desired project 4. Select & Open How to stop an infinite loop Ctrl + shift + R Debugging time! Setting break points 1. Compile code 2. Select line for break 3. Tools 4. Set/ Clear Breakpoint 5. To remove breakpoint: Repeat Shortcuts compile command + k Set/Clear break command + b Create Documentation command + J
0 notes
lewisjpaul · 11 years ago
Text
Java ingredients
Each programming language is unique, to prepare code correctly you need familiarity with the ingredients. Java is more explicit with initializing its variable types. If you need to set up Eclipse, please see my previous post on Java. For a comprehensive list visit Java Data Variables. Below are common types I'll be using during future Java tutorials on this blog. boolean: Truth values (true / false) int for Integer: Whole numbers, for example 42 double: Real numbers. We use doubles for negatives and numbers including decimal places, for example -42.0 String: Text. Lets try using Java variables. VariableType Name; int answer; Variable = variable's value; answer = 42; Lets put it all on one line! String answer = "Answer to the Ultimate Question of Life, the Universe, and Everything is 42."; Time to look at Class Structure class CLASSNAME{ public static void main(String[]arguments){ CODE } } Output System.out.println(some String) output to the console i.e. System.out.println("output"); Lets get deeper... The above will produce the following...
Tumblr media
0 notes
lewisjpaul · 11 years ago
Text
JavaScript Munchkins: Function Expressions
This series of posts teaches JS using the game Munchkin. A fun way to learn how to play is by watching the Table Top Video staring Felicia Day, Steve Jackson and Sandeep Parikh. Declared functions, like the Plutonium Dragon from the last post, are built in memory right as we load the program. Function expresessions are assigned to a varaible so they'll only be loaded when its reached inside the program. // Syntax of a Function Expression var variable = function functionNameIsOptional (parameters) { code to be executed }; The function name above is optional. If the function has no name, then its an anonymous function. // example of calling a Function Expression variable(parameters); You'll notice above that the variable name includes parentheses, and we've included parameters to be used by the function it contains. Lets see an example
Tumblr media
Call the Function Expression combatStrength(playerLevel, powerUps);
0 notes
lewisjpaul · 11 years ago
Text
Getting started with Java
We'll be programing Java on Eclipse. Eclipse provides ... - Library management - Autocompletion - Run app from the editor - Real time error checking To set up Eclipse on your Mac OS X 1. Visit http://www.eclipse.org/downloads/?osType=macosx 2. Download the appropriate version 3. Open the Zip File 4. After starting it, it may state you need to install Java. You may select to allow it to install now 5. You'll be prompted to select which folder you'd like to save your projects. We'll go with default: /Documents/workspace We're close the Workbench (start portal) and move directly to creating a new Java Project. Let's start with "Hello World." 1. Select File -> New -> Java Project 2. Enter the project name hello_world
Tumblr media
3. At the bottom right hand corner click Finish 4. Right click on src -> New -> Class
Tumblr media
5. We're going to give our New Java Class the name HelloWorldMainClass, then click Finish at the bottom right hand corner.
Tumblr media
You're now ready to write your first Java program! To run your program, hit the green play button
Tumblr media
At the bottom of Eclipse you'll see your code ran in the Console.
Tumblr media
0 notes
lewisjpaul · 11 years ago
Text
JavaScript Munchkins: Functions
This series of posts teaches JS using the game Munchkin. A fun way to learn how to play by watching the Table Top Video staring Felicia Day, Steve Jackson and Sandeep Parikh. Game note: Pursue only relates to an attempt to run from the monster. If the monster does not pursue a specific character they automatically succeed on their escape attempt and do not need to roll the die to run away. In the game you open the dungeon door and enter a room. Oh no! You spot a Plutonium Dragon!
Tumblr media
We'll create a JS function to describe the dragon. // Syntax for a function function functionName (variable1, variable2){ Operations for our function. }; // Syntax for calling a function functionName (variable1, variable2); Lets see an example in play...
Tumblr media
Choose your character's level... plutoniumDragon (playerLevel); plutoniumDragon (7); plutoniumDragon (21);
0 notes