Search Results


22 matches found for 'development'

Web Development 101

HTTP vs. HTTPS HTTP stands for Hypertext Transfer Protocol. It typically runs on TCP port 80. It is a protocol for sending data through browsers in the form of webpages and such. One major flaw with HTTP is that it is vulnerable to man in the middle attacks.


Webpack: Usage Examples

... will allow your front-end to update in real-time as you make changes to the code. This makes development so much nicer. So... Webpack? Webpack can be as large and complicated as you want to make it.


Useful Links

This is a personal list of useful resources for improving web stacks, frameworks, development, UX, whatever that I come across! Software Engineering The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) Encryption vs.


Working with Production at Amazon Retail Website

... at a couple of startups, mostly working with products that were in the conceptual phase or the development phase. One of the things I desired the most was to have exposure to products that were live in production or to bring a development project to production.


NFT from a Software Developer's perspective

What is a NFT? A NFT (non-fungible token) is: A unit of data for blockchains with smart contracts functionality (i.e. Ethereum, Cardano) Uniquely represents one entity One non-fungible token cannot be equivalent to another non-fungible token What does it contain? It contains these three bare essentials: An ID that guarantees uniqueness An owner The owner may change over time when NFTs are exchanged with buyers A link to the digital asset metadata Can be untrustworthy and centralized http links, or a link to darknet services / P2P distributed storages (i.


What is DDD? What is CQRS?

Domain Driven Design DDD is an approach to developing software systems that is large and complex, and has ever-changing business rules. DDD captures the sweet spot between the business knowledge and the code.


Software Methodologies

... in a nutshell is basically a set of principles laid out to promote fast and efficient development cycles. Scrum Scrum is an Agile methodology, so it attempts to cover the Agile principles by bringing in processes and rules to help facilitate them.


CSR vs. SSR

... interactivity to server-rendered HTML. They internally use Webpack and other cool stuff to make development easy (like hot-reloading) and apply the best optimizations for production for you.


Google Protocol Buffers

From Wikipedia: Protocol Buffers are a method of serializing structured data. It is useful in developing programs to communicate with each other over a wire or for storing data. Here are some key characteristics of protobuf: Serialization into bytecode means that data is condensed -- small in size.


Distributed scaling with Relational Databases

Background A lot of articles will talk about how to scale databases. Typically, they will talk about the purpose and the general idea of sharding and replication, but often times these topics are explained separately and not so much in conjunction.


Javascript Essentials

Hoisting Hoisting is JavaScript's default behavior of moving declarations to the top. Given the following Javascript code, what is the expected output, and why? fcn2(); fcn1(); function fcn2(){ alert("hi"); } var fcn1 = function(){ alert("hey") } The expected output is a pop up alert that says "hi", followed by an error that fcn1 isn't defined.


Scaling Instragram Infrastructure

... + Cache internal at Facebook, uses write-through architecture Simplified object model which makes development easier Use Canary to load test in production (500's vs. 200's) Deploymen


npm and Node.js Management

npm packages install and save Install a package and also write it to package.json under "dependencies":{} npm install <PACKAGE> --save Alternatively, for developer dependencies: npm install <PACKAGE> --save-dev or npm i -D <PACKAGE> npm install, update, run (outside of current directory) npm install --prefix <PATH to directory> npm update --prefix <directory> npm run --prefix <script defined in package.


A quick overview of day-to-day Docker Commands

Docker is a tool that makes development much more portable and manageable. By creating and managing Docker containers, we can separate applications into their own little container and control them with ease.


Ether and Ethereum is not the same thing

Ether vs. Ethereum Ethereum is... A network built on blockchain technology It's focus is to have decentralized apps (DAPPS) Based on Smart Contracts: A self-executing contract where given an input, a certain is output is guaranteed.


Comparison Charts of File Storage Formats

Big Data Encodings These encodings are often used with HDFS or some other distributed file system. Since the data can be as large as terabytes or petabytes, it is crucial to encode files in a space optimal way and also allow themselves to be read or written in an optimal way.


NoSQL - the Radical Databases

... to determine in relational tables. Pretty new, not as popular or widely used. Not a lot of development tools and resources yet. Most graph DBs are only accessed with REST APIs.


A primer on MapReduce

To first understand this very popular backend technology called MapReduce, let's take a look at Map and Reduce. Terminology The terms Map and Reduce are actually very popular higher-order functions used in functional programming.


DataFrames (a software engineer's perspective)

... or Dask) which needs to be specified at initialization. Modin is still pretty young and early in development. Spark DataFrames Spark is primarily Java / Scala based, which might be difficult to work with when passing datasets over from Python.


Seattle Conference on Scalability: YouTube Scalability

Notes Apache isn't that great at serving static content for a large number of requests vs. NetScaler load balancing Python is fast enough There are many other bottlenecks such as waiting for calls from DB, cache, etc.


NumPy vs. Pandas, and other flavors (Dask, Modin, Ray)

NumPy NumPy is a Python library for numerical computing that offers multi-dimensional arrays and indices as data structures and additional high-level math utilities. ndarray The unique offering of NumPy is the ndarray data structure, which stands for n-dimensional array.


Big Data Processing: Batching vs. Streaming

Intro In data processing, we often have to work with large amounts of data. The way in which this data is gathered comes in a few variants: batching, where we aggregate a collection of data (e.g., by hourly time), streaming for data that needs to be processed in real-time, and a unified variant which simply does not distinguish the technical difference between batching and streaming, allowing you to programmatically use the same API for both.