Cogito ergo non sum git

translation: “I think, therefore, I am not a git” It has now been almost 10 months since I’ve been consistently using git with github.com, so I thought I would share my top pointers and lessons that have helped enhance my git experience so that you do not become a git when using git. The lessons are organized by these categories: speed up your work, find a workflow, debugging tips, and tips for early beginners. Speed up your work Can that be automated? (0) Simplify Login: If you have typed in your username and password too many times and are ready for a change, use password caching and ssh. Password Caching with timeout of 3 years (or until you restart your OS): $ git config –global user.name [YOUR_NAME] $ git config –global user.email [YOUR_EMAIL] $ git config –global credential.helper ‘cache –timeout=99999999’ If you would like to manually perform these steps, simply […]

read more

my first postmortem: an amateur with google apps

This story is about the first major incident that occurred in one of my web applications, chicagoresourcehub.com that caused the app to be down for a long enough extension that it impacted the user’s experience. It occurred around 1.5 years ago when I was first beginning my big step into the tech world. While I had been learning to code on small personal projects before this, the application that I was building in this story was for a paying client. To be honest, it was my first and only paying client, which shows how much of a beginner I was, but also how emotionally intense any technical error or service lapse would be. This incident occurred in the middle of a transition in the services I used, in which I switched from Caspio’s web application (https://www.caspio.com/), which had a database management tool for integrating data into user friendly and searchable […]

read more

What Happens When You Type …com in Your Browser and Hit Enter?

This post is based on the commonly referenced question, “what happens when you type www.google.com into the browser and hit enter, but uses https://www.holbertonschool.com/ as the example input. Before we begin, most browser’s have developer tools, which make it helpful to understand more about the code that powers a website. Since for the time being, I most often use Google Chrome, I’ve provided an example below of a section of the Chrome developer tools that I will reference in this post. To learn more about Chrome Dev Tools, visit, Network Analysis Reference. Chrome Dev Tools Concepts Covered: Browser, Cache, Hosts File DNS request, TCP/IP Firewall, HTTPS/SSL, Load-balancer Web server, Application server, Database Local Machine and Local Area Network: Browser auto-complete: your browser has it’s own auto-complete system based on history, cache, and bookmarks.  Assuming the site has never been visited, auto-complete will not be used, and the user will input the entire string, https://www.holbertonschool.com/. FQDN: The user input in this […]

read more

DevNet Create Welcomes Holberton School

:Where Users meet Applications & Infrastructures What is Cisco DevNet? Approximately 3 years ago, Cisco launched DevNet, which is a developer program, providing sandboxes, labs, api’s, and a variety of other tools that help you to produce Cisco-enabled applications to sell and/or use to enhance or manage existing Cisco networks. DevNet is Cisco’s platform to support leading software development integrations with Cisco’s technology. Cisco’s DevNet conference, DevNet Create, hosted in silicon valley, was a successful opportunity for DevNet to outreach to a new community of developers, especially those unaware that Cisco is not just a hardware provider. The first ever DevNet Create, framed as The IoT and cloud developer conference, where applications meet infrastructure supported developers to better understand and utilize the connection between the 2 large hemispheres of the cloud and infrastructure. The conference offered 2 major tracks: (1) the cloud & DevOps track and the (2) IOT & […]

read more

python object oriented programming

: behavior of data types and operations for mutable and immutable objects in python language The examples and explanations in this post have the following specifications: environment: vagrant virtual machine with linux 14.04.5 LTS for Ubuntu language: Python 3.6.1 (default, Nov 17 2016, 01:08:31) compiler: gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 Python docs at docs.python.org describes: all data in a python program is represented by objects or by relations between objects. docs.python.org, further explains this concept in reference to PyObject and PyVarObject: PyObject All object types are extensions of this type. This is a type which contains the information Python needs to treat a pointer to an object as an object. In a normal “release” build, it contains only the object’s reference count and a pointer to the corresponding type object. It corresponds to the fields defined by the expansion of the PyObject_HEAD macro. PyVarObject This is an extension of PyObject that adds the ob_size field. […]

read more

what the f*Lib.so?

:C language libraries, part 2, dynamic libraries compiler: gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 environment: vagrant virtual machine with linux 14.04.5 LTS for Ubuntu language: C language For background information on the subject, it’s helpful to understand what happens when C language files are compiled; for more information  on that, check out my other blog post: Computer Compilers: brief introduction, which helps to explain how the gcc compiler works. As this is a continuation of another blog post that I wrote, please refer to my post on libraries: what the f*Lib.a? for more on static libraries.  Here is a short summary from that blog: why use libraries and how they work Library files typically contain the code for functions that are most commonly used by an application or programmer, or that belong to a unique set of functions that together work to meet a larger end goal that can be used in a variety of different applications. Thus, libraries in […]

read more

mini tweet bot

a python application :for twitter automation with Cloud Foundry on IBM Bluemix (0) intro Mini tweet bot is a web application (accessible in the below link to the working app) for automating twitter functions with a designated synced twitter account. The front page has the feature of allowing anybody with access to the app to tweet to the synced account. This is a useful purpose for any situations in which you would want multiple people tweeting to the same account. Twitter offers the service called Tweetdeck (linked below), which has a similar feature allowing multiple users to tweet to the same account; however Tweetdeck requires every user to have a a personal twitter account, and have the private access information (the password) for the shared account. With mini tweet bot, there are no restrictions, no shared passwords, no login process, and no twitter account required to tweet; users simply need access to […]

read more

arsine, a custom shell command line interpreter

:a step by step process of how the custom shell, arsine, processes the input command ‘ls -l‘ and returns output in a terminal emulator Co-Authored with: Bobby Yang, follow @glyif on twitter and github. For reference to the code of arsine, it is hosted on github (@glyif , repo simple_shell): https://github.com/glyif/simple_shell These beginning steps until the custom _getline() function all occur for all processes and all inputs into arsine including ls -l, and so therefore, there is no specific explanation of what happens in the case of ls -l until the _getline() function explanations. arguments inventory The major component of the initialization of arsine occurs in a function that builds a struct termed the arguments inventory. This arguments inventory has almost all of the major variables utilized within arsine; also, many of the functions in arsine take the arguments inventory as input parameters. It was a concept that was implemented in […]

read more

can’t see the forest through the trees

:on the kernel | linux vs. unix | operating system vs. ubuntu vs. virtual machine | shell vs. bash | command line vs. terminal As daunting as I imagined the task of writing this article would be, it wasn’t worse than the feeling I continually face of having to learn to program software without a solid grasp of the meaning of the aforementioned components and applications. In my Software Engineering training at Holberton School, when we utilize the above listed applications, I often feel confused as to the differences between each of the different components and systems. My main problem is that I miss the big picture of how my computer software that I utilize is structured and connected to the rest of my computer. This also creates problems for how I communicate about what I’ve coded on my computer, especially for people that use different software and different machines. Not being able […]

read more

what not to do is as important as what to do

:on how and why C language allocates memory Special thanks to Lisa Leung for her editions.  You can follow her on github here. In learning C language, in our studies as Software Engineering students at Holberton School, we use the GCC (i.e. GNU Compiler Collection) compiler to convert our C language code into an executable file of code in binary system (i.e. 0’s and 1’s) because 0’s and 1’s can be easily translated into on and off transistors of a circuit board.  For more on GCC compiler, check out my article: Computer Compilers: brief introduction.  So, when a transistor is off, that translates to a ‘0’ (zero), and a transistor that is on (having electric current flow) translates to a ‘1’ (one). Binary is the link between human legible code and the machine that contains transistors in the Central Processing Unit or CPU.  Once one has a basic grasp of this concept, it […]

read more