HN user

periram

105 karma

periram.at.hn

Posts1
Comments34
View on HN

Scale, Complexity, Job Specialization, Organizational or Business needs blah blah.

Let me explain.

Imagine you have a team that grows from say 4 to 40 over time. All the initial programmers, business managers etc. have left. One fine day, you get a call from the client saying "The feed has not arrived today, fix it in the next 2 hours or we are going elsewhere (or can you please please please fix it ASAP) ..."

What do you do? How do you prevent this from happening in the first place? What procedures / software do you need to have in place to even know what went wrong etc.

Now let me give examples that these tools help you handle.

1. You need to view all the jobs that run on a daily basis across 400 of your servers. 2. You want to make sure that no changes to anything in production can happen without at least 1 more programmer and 1 more business person signing off on it. 3. A job / script fails partially, how do you assess the impact and move forward (you are not even aware of the existence of this script). 4. You have a backup script / job that needs to run on demand. You want to let your support folks run it or even the business folks, without any programmer intervention (you don't want to get a call every time someone in Japan wants to run this report).

Coming to CI/CD systems, some of their goals are

A. Codify the knowledge into scripts / configs and do not rely in tribal knowledge. B. Ensure that your code is always in a "buildable" state with the new changes (i.e. don't even let bad code in) C. When a build fails, notify the programmers who introduced the bug immediately D. Once a build is complete, send it to other systems for stress testing. ...

Yeah large businesses can have very intricate and complex needs. They rely on generic and configurable software (proven and tested by other large organizations) to meet their operational needs. Also, given that you can hire people that are proficient in these tools, you can focus on the business needs rather then reinventing these tools.

SVB Hall of Shame 3 years ago

Isn't this one of the stable Nash equilibriums in game theory. You keep X of your X money if you withdraw, with a chance that someone else will lose their money OR you keep your faith in the system with a chance that you lose 100% of X.

Would anyone here find it useful if I offered to teach algorithms and data structures, specifically catered towards leetcode kind of problems.

The approach would be (writing it from memory, will revise it if there is any feedback):

First master the basic data structures and be able to manipulate them rather quickly. We will write many small programs to ensure that a one can perform most of the common operations on a given data structure straight from memory.

Then we will write transformations, i.e. being able to convert one data structure into another.

Next up with be problems that requires a combination of data structures.

We will spend a good about of time in graph problems, the usual data structures used to store / manipulate them and understand some of the basic graph algorithms ( MST, Traversal, Shortest Path, etc.)

We will briefly spend some time on sliding window problems.

Dynamic programming, Greedy and divide and conquer techniques are rather simple, but we need to distill it down to a science so that we can code them eyes closed :-)

Order complexity, how to think about it by looking at an intermediate step and calculating how many operations are needed to get to next step. We will dig a little into the mathematical aspect of it.

Focus on these things in a round robin, based on how important they are to you.

Catchup with family, send texts/emails. Plan your day/week/year/vacation. Self development (communication skills, new skills, reading, meditation) Self entertainment (watch movies/shows or read books, anything that makes you happy without bothering others)

Time will eventually become the most scarce commodity in your life, make good use of it while you have plenty of it.

Awesome effort. I really really hope this makes at least a minor dent in the scientific publishing deadlock.

My 2 cents: Please be open to suggestions. Please involve more people, who you feel comfortable working with. You have solved multiple independent problems of decentralized trust, voting etc. Please try to be agnostic to a specific solution.

Great product.

I used a very similar idea with my many clients when I was running a startup. Since my domain was e-commerce, I also used google spreadsheet to manage inventory, images, products etc.

I will recommend that you provide immediate feedback to the user with pre-canned JIRA agile - kanban charts. It is very important that the user feels that they have created a lot of value, otherwise they will not be able to see the value of this extra step.

Anyone can run, you just need to reset your expectations.

Backstory. I used to not like running at all. Every time I ran, my mind would count down either time left or distance left. It always felt easy in the beginning but very soon would be unattainable. But now I can run decent distances without getting mentally or physically exhausted.

So here are the lessons:

1. The first 1 mile is the hardest.

2. Second mile is hard but not nearly as hard as the first mile.

3. For the first few weeks do not run more than 1- 3 miles (based on your history) even if you can. There is no need to. The habit is more important than what you achieve on any given day.

4. Run slowly, lean forward and really reduce the impact on your knees. I started running one mile in 12 - 14 minutes, that is really slow.

5. Breathing. If you run slowly and let your body do it's thing, then your breathing will become rhythmic and in-sync with how much energy your body needs.

6. After a few weeks magic happens. You can run 8 miles in about one hour, not get bored, not think about it. You mind zones out and focuses on something productive.

I learnt more things, but wanted to share this.

I am in the same boat as you, though my kids are a slightly older. Other replies here are more informative than mine, but here are a few more pointers.

NOTE: My kids have been doing hour of code, scratch on and off and they love it: http://partners.disney.com/hour-of-code. Sometimes kids do want to know "how does it actually work".

I have noticed that we digress quite a bit.

Here are some observations:

  1. Children learn a lot better when they are in a group (of say 4), especially with slightly older kids.

  2. Make them write down what they understood after the class.

  3. I started with the simplest computer in the whole world 
 (in my opinion, not a turing machine) i.e 
    cpu <---> memory model. Again, I am not an expert but thought this level of abstraction was easily digestible for them.

  4. Then explained that everything that they can do on the computer is all done by this basic computer, just faster.

  5. Then introduced them to the notion of basic programming.
     A. Computers understand only very very simple instructions, called machine instructions.
     B. We can slightly better using higher level languages.
     C. If a computer does not understand what you say, it cries like a baby. You need to get used to the different cries (error messages) and sometimes it can be very difficult. 
     D. Simple instructions.
     E. I had to introduce print as a function. Actually this part was not difficult at all.
     F. I am tiered of typing things again and again: loops
     G. Hey we did that before, can we use it again? functions
     H: Sometimes we need to make decisions? if / else

  6. Familiarity with the jargon takes time and is perhaps half the battle. 

  7. Our next step is to identify simple problems that are programmable.

Here is the progress so far https://saanviperi.com/

Food, laundry and house cleaning: Things that have not kept pace with technological advancements.

I really hope they are successful. The second order effects of this automation, especially for a busy family like ours are hours of saved time, that can be spent with the children.

Finally! Thanks a ton to both Cling developers and Jupyter. Personally, a lot my programming involves prototyping and playing with a lot of different ideas and implementations before settling on a solution. Compiled languages put a steep barrier to this way of thinking and that is why Python has always been my favorite. I have come back to C++ thanks to Cpp14, 17 and great new features like this!!

Run 6 miles 2 - 3 times per week. BEFORE eating dinner. If I am short by Sunday, I run both morning and night. (It started with 2 miles per day, but before I know, I was running 6, perhaps the body just keeps pushing itself)

Weights 2 times per week.

Bike to/from train station and to/from small distances.

Totally agree with the author. I have started coding again in C++ after a 10 year detour to python.

Can we have basics first, and then robust libraries for say, as simple as networking.

Batteries included, is a thing, and is something a lot of programmers like me look for when choosing between languages.

I rarely post. Have been laughing nonstop for the past 10 minutes.

Right on point: Hackernews resumes a previous thread, wherein they admonish each other never to 'roll your own crypto', but rolling your own public-facing internet service, database backend, programming language, kernel, messaging protocol, orbital launcher, autonomous war robot, or legal document is completely fine.

FusionTables looks awesome. I am currently using a simple ETL wrapper for google spreadsheets and it seems to be more than enough to do the sync for limited amount of data. This is perhaps what I need to scale it to larger data sets.

Again, I deally I will use the underlying db for e-commerce as well, so that there is only one data model.