Creating a HTML5 Desktop App with NW.js

If you haven’t heard of Slack, a app for team communication, then I highly suggest you check it out. I use it to communicate with my developers at SlickScript, with the managers at Lunardi’s and have used it for some projects in class. Its simple, clean, speedy, and in short I really really like it. What I like most about it, besides the three reasons above, is that it has the same look and feel no matter the format in which it is used. That is Browser, phone, and desktop app all have the same look and work in the same way.

I have been thinking of creating a schedule app of sorts for Lunardis since their way is very inefficient. First they write their schedule, a rough draft of it. They take this rough draft and re copy it over while at the same time looking for any mistakes they may have made. After this, they again re copy the schedule to make it clean and readable. The schedule is then posted for everyone to see throughout the week and come Friday the managers take it down and fill out payroll based off of it. However, payroll has a different format. The managers must add up all the hours that someone works and place what they get in the appropriate columns. These columns include; reg hours, Sunday hours, overtime hours, and something called prime hours which is the hours between 10pm and 6am where clerks make 50 cents more an hour.

As you can see it takes a lot of effort to write a schedule and deal will payroll. The idea for my app is to cut this waisted time down by about 75%. All the manager has to do is plug into the app the time that the person is working and it will fill out the payroll portion for them. They will only have to write one schedule since it is digital and will be clean and neat the first time. The way they enter the shifts would be the way the are printed (10:30-7:30 OR 1030-730) and the app will take care of the rest. I can even keep track of the amount of people that are working a day and other important tracking aspects (how high payroll will be at the very beginning for example).

For now thats the general idea. I have never used NW.JS before nor have I done much with HTML5 and javascript. I will be learning as I go and keep track of everything here.

AWS: Cloud Formation

Diving into AWS head first with no real knowledge about well anything can be a real daunting task. Yet, here I find myself lost but not alone thanks to Youtube. I quickly watched a few videos and read a few blogs about the basics of AWS and was tasked with first launching a CloudFormation template that created a instance and allowed SSH with a key pair.

PS 6: Last problem set for CS149 @SJSU

Our instructions: 

  • The purpose of this assignment is to practice making multiple concurrent Linux I/O system calls in C, with a server process listening to multiple sockets and multiple clients communicating with the server process over the sockets.

    Server

    Create three sockets (local communication sockets), named as “CS149-Socket1”, “CS149-Socket2”, and “CS149-Socket3”. It must use the select() system call to determine whether any of the sockets has received connection request and/or any input data. The select() call is necessary so that request/data on any socket(s) can unblock the server. Once data is received from a socket, it first writes back to the client “received from socket ID:” , following by the content received. The “socket ID” should be replaced with the actual socket name (server socket name) from which the data is received. Then it should print out the same content on screen as well as to an output file “server-output.txt”. The server repeats the process of listening/reading/printing/writing with an infinite loop until terminated by user (via Control-C).

    Clients

    Create three client programs (namely Client 1, Client 2, and Client 3). Each client can start/terminate independently and should connect with the server via one of the three sockets created by the server respectively, i.e., Client 1 connects to socket “CS149-Socket1”, Client 2 connects to socket “CS149-Socket2”, and Client 3 connects to socket “CS149-Socket3”. Each client will ask user to type in a string and then write the string, appended by the client ID, to the corresponding socket. For example, if user input string to Client 1 is “CS149 class is great!”,

    then Client 1 should write the string “Client 1 user message: CS149 class is great!” to the socket “CS149-Socket1”. The client should also write the same string to a file “client1.txt”. Then the client should wait for the response from the server. Once the response is received, it should print out “Server response received:”, following by the content received. It also should write this to the output file “client1.txt” and repeat the process (waiting for user to input the next string, etc) until terminated by user (via Control-C).

    ————————————————————————————————————————————————

    Let the fun begin.

    Ok so first off this has to be coded in C. I haven’t coded in C for quite a while so time to do some reading.

    The professor added a number of src files that show which each individual thing does. That is he has the Client, Socket, and Server src files. I am guessing I am going to see how each portion works and build a program that has all 3 components….. In Java this would be easy since I know the language pretty well. Doing this in C though is going to take some time.

Major Coding Project: CS 151

Hotel Reservation System

By: Mike Bibb, Steven Leiker

For our major programming assignment this semester for CS 151 we had to design a hotel reservation system. The system has to have a login ui followed by the ability for a user to type in a check in date and a check out date followed by the type of room they want (an $80 room or $200). There are 20 rooms available so we have to keep track of how many have been reserved for the night and by whom. Then there is a manger view which shows a calendar. When a day is clicked a text view is shown that displays the available rooms for that day and the rooms that are booked for the night and by whom they are booked.

We started this a few days ago after having been assigned this project a good month ago. Nothing like a last minute rush to really get your ideas flowing.

As of right now 12/6/14 we are almost done. its 2am and we are calling it a night. This assignment is due in less then 24 hours and I work most of today. Going to get a little sleep so I can function at work and get back to the program. Hopefully the rest of it will be done quickly. We more or less just have to clean it up and write the documentation for it as well as some bug testing.

The rest of this will be written backwards as I try to remember these last few nights when we were coding into the early hours in the morning.

Blog 9: Delivering a project and presenting to a multi-level audience

Steve Jobs was one of the greatest presenters of our time. He could grasp an audience within his hand and have them feed off of his every word and then beg for more when he was finished.

The effect he had on the world is astonishing. He took a failing Apple(the company not the fruit) and turned it into one of the most profitable companies in the world. He revolutionized electronics with the Iphone, Ipod, and Ipad. He had a special gift that would make you need to by the latest tech that he was releasing. He had a gift to make people crave his key-notes. He had the ability to shake up the world with a presentation. If you want to be a great presenter yourself, look no further than understand what Jobs did.

Graham Rogers wrote about Steve Jobs presentations skills, “But how does Steve do it? In effect there is no secret: it is just hard work. There are other significant aspects, like preparation, rehearsal and criticism; and the well-worn ideas of planning, starting with a piece of paper. It may also be a surprise to many, but the slides are prepared last” The secret to Steve Jobs presentations is that he worked extremely hard at it. Everything he said everything he did on the stage was written out, rehearsed and then re-done if it didn’t carry the impact that he so wanted.

What to take away from this is that if you want to be a good presenter you need to work hard on your delivery. You must know your material extremely well so that when you speak it is smooth and concise. My last keynote that I went to the CEO of a company acted like he never even seen the words on the teleprompter. He stuttered and miss spoke many times having to constantly go back and correctly say what he meant to. This coming from the CEO is an embarrassment to his company. Do be that guy who doesn’t know his stuff and end up in someones blog down the road.

Another important idea is to know your audience. Know who you are speaking to so that you can frame your presentation around them.

To present to an audience and to do it well you must know your material. And furthermore you must know the audience you are presenting to. Knowing your audience and how to present to them is part of the hard work that you must work on. Know your material, know your audience, and rehearse your stuff until your eyes bleed out. My last thought on presenting is to be passionate about what you are speaking. The passion you feel about an idea or product will come out in your presentation and make it all the more exciting for the people in the audience. They can feel your excitement and they will feed off of it.

Images from:

http://specials-images.forbesimg.com/imageserve/0al9eD7eUWgly/0x600.jpg?fit=scale&background=000000

http://specials-images.forbesimg.com/imageserve/02Wb5oAgAkcpQ/0x600.jpg?fit=scale&background=000000

Rogers, G. (2009, December 9). Preparation is key to effective delivery. Bangkok Post. Retrieved November 25, 2014, from ftp://202.60.207.28/BP/2009/12 Dec/09122009/BK091209D03.pdf

Spence, E. (2013, October 19). Five Of The Greatest ‘One More Thing…’ Moments From Steve Jobs And Apple. Forbes.

Blog 8: Handing off a project to a client; what are the risks and challenges?

You think that by having completed coding on your project and finished bug testing you are done? Not so fast! The final task for your team is successfully handing the project over to the client. Sounds easy? It can be depending on the project. A simple app for a cell phone? Just upload it to a App store with a description and you are done. But for a larger project, one that is not going to be on a app store, things are going to get a little more tricky.

First and foremost, what are you going to hand over to the client? Are you going to send them every single thing you worked on? “The choice of what to do with production graphics is up to you. Some designers keep their original, editable versions of their graphics. Others hand over all the files.” (Karl, Sahlin).  The most important thing to understand is that whatever you send you should always keep a copy for yourself and that you should document for the client exactly what you are handing over and why.

The next hurdle you must cover when handing over a project is how much support are you going to give the client? Are you going to train them on your whole application? Chances are that the client might not know how to use your program so at the very least you will need some sort of documentation on its workings.

How is the client going to get the application or program anyway? Are you going to transfer it by a disc? is it going to be a direct download somewhere? Are you using a app store? If like in my teams case its a website Karl and Sahlin write, “ Best practice is to deliver the site itself to the client’s web server via FTP (File Transfer Protocol).” Although it may seem pretty basic you need to have a plan on how to send the completed project to your client.

There are probably countless issues you can have delivering a completed project to your client. To minimize any problems take extra care in creating your documents and action plans in the deliverables. This will save you a major headache in the end when all you probably want is to be done with it.

 

Images from:

http://www.hetek.hu/szabadido/201103/szemelyre_szabott_szakdolgozat_lusta_diakoknak

http://www.inkcinct.com.au/web-pages/cronological/2008-july-dec–cronological.htm

Sahlin, Doug, and David Karlins. Building Websites All-in-one for Dummies. 3rd ed. Hoboken, N.J.: Wiley, 2012. Print.