teleren/devto huggingface dataset:
You know about computers, right?
Tags: discuss, funny, lifestyle
Published: 2017-10-21 22:54:25

---
title: You know about computers, right?
published: true
description: The most hilarious things someone asked to you thinking that as a computer engineer or developer, you would be able to solve it.
tags: discuss, funny, lifestyle
---

A couple of weeks ago my aunt called to me, "I need your advise. You know, about technology... as an engineer" she said. "All right" I prepared myself, for all the computer issues my aunt could have. Maybe facebook login? windows blue screen? "I'm having a problem with my washing machine" she said. Oh well, I guess I'm not that good of an engineer.

Some persons really don't know what computer devs and engineers do, some of them think about us as tech magicians. **What are the most hilarious things you've been asked to solve mixing engineer and dev with tech magician?**
Being a Junior Software Developer
Tags: development, junior, java
Published: 2017-10-21 22:37:36

---
title: Being a Junior Software Developer
published: true
description: 
tags: development, junior, java
---

Hey! I am a junior software developer working with Java 8 and Spring (Boot) Framework. It has been around two/three months since I started. Time to start sharing some of my experiences of being a junior developer, and things I missed on my career start. I start this off with three tips I have for junior developers and also more experienced developers who train new juniors. Enjoy! 

### 1) Take the first step
The first thing I failed, and still fail a bit, is taking a first step if I keep walking against a wall. When you walk against, don't walk to it a couple more times. After the first hit, ask a more experienced colleague for help.

Those small lessons when you get stuck are amazing. I found them being more helpful than necessary but it keeps the learning process alive. It speeds the learning process more.

### 2) Get your onboarding right!

If you are a (senior) developer who helps a new colleague get into the work: explain the whole process. Which tools do you guys use? What is your code style? What is the workflow in the source code management? How are applications being deployed? How are specifications for a piece of software formatted?

That onboarding process is so unbelievably helpful for a new colleague. I found myself in the position of wondering what to do as I did not understand the workflow used at our office. 

An ideal situation would be to fill the first week with workshops for the new colleague. And let every developer give a workshop. It generates possibilities for the new developer to meet all his/her new colleagues.

Ending the workshops with a little summary would be awesome, it gives the junior a little booklet to keep by their side if needed. It depends on the knowledge level of the new developer which workshops are more important.

### 3) Treat each other equally and accept discussions
Even if you're a senior developer with 15+ years of experience, don't put the opinion of the junior aside and just say you're right. Explain them why you think you are right. Explain what is not correct about their opinion. 

Let them discuss with you, point them to the correct direction but do not make the path for them. Make them ask you questions, but don't ignore them. Teach them the correct ways by making them think. 

### That is it for now
Hope people can share the same ideas, what are your thoughts on the above? I would love to hear from you!
FactoryGirl was renamed FactoryBot
Tags: news, ruby
Published: 2017-10-21 21:03:58

---
title: FactoryGirl was renamed FactoryBot
published: true
description: The original name was basically an inside joke and did nothing to clarify its purpose.
tags: news, ruby
---

FactoryGirl was a popular Ruby library for generating object data, primarily for testing purposes. The library is now named [FactoryBot](https://github.com/thoughtbot/factory_bot). I think this is a good call. Its original name was confusing and potentially uncomfortable. Given the gender imbalance in the industry, anything named "girl" has the potential to cause alienation. Critical analysis of these cases is a good call.

The original name was basically an inside joke and did nothing to clarify its purpose. And while FactoryBot is not exactly explicit, it is more straightforward given what we might think of a "bot" doing, in this case, coming up with test data.

By the way I'm not part of the project, just reporting on the details. That might not have been clear ðŸ™ƒ
Taking time to plan will save you time in the end
Tags: programming, coding, timemanagement, planning
Published: 2017-10-21 20:53:40

---
title: Taking time to plan will save you time in the end
published: true
description: Planning upfront will help you write better software.
tags: programming, coding, time management, planning
---

After programming for a few years, you probably know the feeling of going into "the flow". Basic things have become easy. Starting up a project has become routine. Fixing a bug follows the same process every time. So, setting up and working on something you haven't done before isn't that hard either, right? You can just lean back, trust your experience and start typing code right away until the whole project is done. Right? No. If only it would have been that easy...

I was falling into the above a while ago. But, just after starting on something without thinking it through in advance I learned that this was definitely not the right way to go. Whenever you start coding, things might seem easy and it might feel like you're on the right path, but the further you're advancing, the more clear it will be that planning and thinking about things upfront would have been a better idea. Starting something and not thinking about the consequences of your actions will surely lead to a coding hell that's hard to step out from.

So, what exactly do I mean with planning upfront? Do you need to draw out entire frameworks and think of all possible scenarios when adding a very small feature to an already existing product? No, I don't think so. At least, I think the level of detail and upfront planning you need to do grows with the size of a project. Fixing a bug always follows the same kind of structure, which you certainly don't have to draw out entirely every time you do it. Adding a new, small feature probably requires some more pre-coding work, but certainly not as much as a full-blown system setup.

What helps me when I start working on a new feature, is laying out the code paths upfront. Either on paper (just draw out the scenarios and eventually the framework that you're going to build) or directly in code (creating stubs, yet-to-be implemented classes based on interfaces, etc.). Just laying out the basic structure for a feature already helps out big-time and will prevent you from making basic mistakes that will cost you at a a later stage. How much work you exactly need to put into a new feature upfront is something you will find out by doing. If you plan out a new feature and get stuck at some later stage, you know that you didn't spend enough time upfront. If a feature was build successfully and you think you might have spent a little too much time upfront, just try to spent less the next time you're developing a similar feature. As always, getting your feet wet and trying things is the best way to learn. It's a very true clichÃ©.
Most of the value of great web software will be realized years from now
Published: 2017-10-21 17:21:48

---
title: Most of the value of great web software will be realized years from now
published: true
description: A train of thought on software development
tags: 
---

One of the biggest plagues of web development is being in too much of a hurry. Yes, there are times where nothing is more important than moving fast, but we often take that as the default, when it is actually the exception.

Projects that move steadily towards greatness are the ones that last. It's hard to justify that statement with certainty, but I believe we think that old technologies are bad and that we always need to be moving on to the new stuff, but this is mostly true for projects that were built to be flimsy in the first place. So this line of thinking is kind of a self-fulfilling prophecy.

![](https://eagereyes.org/wp-content/uploads/2012/05/costs-lines1.png)

If this generic graph measure's the potential value a project can deliver over time, it would be silly to optimize our time and effort towards the small area under the curve, instead of the big one. Methodical craftsmanship wins out if we can take this mindset.

Being meticulous early on so that you can achieve hyper speed when you need it is the way to optimize for longterm value. There will be a lot of straight aways where you can move really really fast because you've set yourself up to do so early on.

Think in the long term by focusing on the details early on in a project. Don't try to predict the long term future too much, but trust that craftsmanship now will pay off then. Set expectations with people who don't want to think long term. Take long walks where you think through the future, and then put it out of your mind and craft something beautiful now. And have fun.
sudo apt-get install gitweb
Tags: install, ubuntu, gitweb
Published: 2017-10-21 15:49:47

---
title: sudo apt-get install gitweb
published: published
description: Install "gitweb" on Ubuntu Server 16.04.3
tags: Install, Ubuntu, Gitweb
---

```shell
sudo apt-get install gitweb
```
### move to a "Git Project" and type
#### default port ( -p 1234 )

```shell
git instaweb 
```
### or change port to 1237

```shell
git instaweb -p 1237  
```

open more change projects ( add ) + 1 to -p 1237 / - p 1238 / -p 1239

### Pictures
- http://127.0.0.1:1234 - https://thepracticaldev.s3.amazonaws.com/i/oftrxgqr3ecv8zku45ov.png
When can you say you know a language?
Tags: discuss
Published: 2017-10-21 15:12:36

---
title: When can you say you know a language?
published: true
description: 
tags: #discuss
---

When people ask me how many programming languages I know, I am usually hesitant and say something like "Many." and then tell them the projects I have worked on and the languages they are written in. My CV lists eight languages that I am familiar with. But at what point can you say you `know` a programming language? 

If somebody says they know C, how much can you trust this statement? C has so many pelicularities and as soon as you start to dig into something a little deeper, things get complicated very fast ([link1](http://www.pvv.org/~oma/DeepC_slides_oct2011.pdf), [link2](https://hackernoon.com/so-you-think-you-know-c-8d4e2cd6f6a6), [link3](http://www.gimpel.com/html/bugs.htm), [link4](http://www.gowrikumar.com/c/index.php), [link5](http://blog.robertelder.org/switch-statements-statement-expressions/)).

If somebody says they know Java, for me, this raises more questions than it answers. Have they built a desktop GUI, developed mobile apps? Have they worked with threads, developed web applications, distributed applications? Have they used reflection or aspect-oriented programming? These are all things that can be done in Java. 

Does `knowing` a language mean `I can read code that others have written in that language.` If I am nasty, and put a little time and effort into it, I am sure you can't read the code I produce or get a totally wrong impression of what it does ([link](http://underhanded-c.org/_page_id_2.html)). Does `knowing` mean `I know how to get my programs past the compiler?`. If this is the case, I'd say you can learn any language on a lazy sunday afternoon and put it in your CV.

You might say that years of experience matters the most. But what does years of experience mean exacty? If you say you have "2 years" of Python experience, did you use Python literally 730 days in a row? Or did you use it once every week, when you needed a quick script, to delete some files?  Or did you build a website (2 years ago) using a Python framework where you copied most of the code from the tutorials? 

When can you say you know a language? Or are we asking the wrong question?
sudo apt-get install task
Tags: install, ubuntu, task
Published: 2017-10-21 15:09:04

---
title: sudo apt-get install task
published: published
description: Install "Task & Taskwarrior on Ubuntu Server 16.04.3
tags: Install, Ubuntu, Task
---
### Installlation
```shell
➜  ~ sudo apt-get install task
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  taskwarrior
The following NEW packages will be installed:
  task taskwarrior
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 626 kB of archives.
After this operation, 2206 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://lu.archive.ubuntu.com/ubuntu xenial/universe amd64 taskwarrior amd64 2.5.0+dfsg-1build1 [618 kB]
Get:2 http://lu.archive.ubuntu.com/ubuntu xenial/universe amd64 task amd64 2.5.0+dfsg-1build1 [8196 B]                                                                                       
Fetched 626 kB in 2min 0s (5195 B/s)                                                                                                                                                         

Selecting previously unselected package taskwarrior.
(Reading database ... 99545 files and directories currently installed.)
Preparing to unpack .../taskwarrior_2.5.0+dfsg-1build1_amd64.deb ...
Unpacking taskwarrior (2.5.0+dfsg-1build1) ...
Selecting previously unselected package task.
Preparing to unpack .../task_2.5.0+dfsg-1build1_amd64.deb ...
Unpacking task (2.5.0+dfsg-1build1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up taskwarrior (2.5.0+dfsg-1build1) ...
Setting up task (2.5.0+dfsg-1build1) ...
```
### gem install taskwarrior-web 
- https://dev.to/psnc/gem-install-taskwarrior-web-a3

### Pictures
- Picture Taskwarrior Web https://thepracticaldev.s3.amazonaws.com/i/hl0ba26c4ujh1tc0j21d.png
- Picture Task https://thepracticaldev.s3.amazonaws.com/i/w74r87otmn0l5j9mkrv7.png
Awesome resources for learning to code
Tags: discuss, learning
Published: 2017-10-21 09:42:10

---
title: Awesome resources for learning to code
published: true
description: a subjective collection of learning resources
tags: discussion, learning
---

Some people learn best by reading textbooks. While others prefer watching video tutorials, or reading tech blogs. Others just learn by working on real world projects. There is no one size fit all. The list below is subjective.

## Coding
1. Leetcode.
This is my favorite coding site because it contains a variety of challenging questions and algorithms. Plus, it supports many programming languages.
2. [InterviewCake](https://www.interviewcake.com/).
I subscribed InterviewCake site and got a free weekly challenge question. It is a great way to set a reminder to practice and improve coding skills.


## Video tutorials
* Pluralsight
* Lynda

Pluralsight and Lynda are great for learners both students and professionals of all levels. These two paid subscription services have a vast collection of video tutorials for many fields of study. However, because technology is changing rapidly, some contents are out of date. And you also want to be little picky when choosing an instructor and a course to invest your time with.
* [Egghead](http://egghead.io/). contains short, instructional video tutorials. It seems to target specific tasks suitable for on the job applications.
* Scotch.io
* Tutsplus.com

## Blogs
* Dev.to
What I likes most about dev.to is an engaging community, great in-depth topics and real work experience shared by the community.
* Medium.com
It is quite often that a Google search of a particular topic lands me on Medium site. It goes to say that it has a great number of contributors and writers for many practical topics and hand-on tutorials.

## Textbooks
If you are a fan of reading textbooks from well known authors. Here a few I like.
* O’reilly publication. I started out my web developer career by reading a few books from O’reilly. I think they are worth the read.
* Manning publication. I like their books and writing approaches to each topic.

### Learn by specific topic
* Stackoverflow. An indispensable tool for Q&A
* If you want to learn specific topic such as Node.js, PHP, or Rails, there are websites dedicated to those domains, (e.g. Laracasts for PHP)

This is by no mean a complete list of available resources on the web. I did not intend this post to be a review of the resources. Therefore, I keep each bullet as short as possible. If you are reading this, you have probably heard of most of the sites listed above, if not all. Please comment below if you know a good one. As a lifelong learner, I am always excited to explore and learn.
Structure Over Familiarity
Tags: discuss, programming, devtips
Published: 2017-10-21 09:16:07

---
title: Structure Over Familiarity
published: true
description: A short note on production performance.
tags: discuss, programming, devtips
---

*Cross-post from [Trent's Dev Blog](https://trent-dev.github.io/).*

> *Always prefer good structure over familiarity.*

It worries me when some team members prefer shorter code & familiarity over maintainability & extensibility. To me, these aspects sound quite arbitrary. I think these aspects are more of a QoL(Quality of Life) improvements for the first developer working on the code, than actual better code. Good qualities to have, but not quite necessary. As modern software industry develops, codebases are getting larger and larger, and more people are being involved in a project. Thus, **it is more important to write good structured code that team members can easily understand, compared to certain QoL improvements for the first writer.**

Also, some people argue that it is faster to program writing badly structured code. **I argue that there is no trade-off between program time & code quality - in fact, I think quite the opposite, that it is faster to program even a mildly interesting program using good code structure.** Program with good structure may have more LOC compared to a hack job, but LOC doesn't necessarily equate time spent programming. Following a properly-learned good program structure helps a developer arrange program requirements into strict categories, thus helping them to make decisions faster and execute in confident manner. **They can program freely, confident that their program will be easily readable & maintainable, and function correctly.**

In summary, following a good code structure is to be preferred against shorter code or familiarity. Also, it's a myth that it takes more time to program using a good code structure. **We should strive to break out of the mold we are used to, and always improve, to write good structured code that can ease life for others.**
Add a way to see who reacted to your post/comment
Tags: discuss, meta
Published: 2017-10-21 09:00:26

---
title: Add a way to see who reacted to your post/comment
published: true
description: dev.to improvement idea
tags: discuss, meta
---

It would be nice if we could click on the reaction count and see a popup of a list of people who reacted to our post/comment.

I think that would be a nice addition.
software architecture
Tags: softwarearchitecture, suggestions, help
Published: 2017-10-21 05:08:39

---
title: software architecture
published: true
description: I want to make a software architecture for group of hospitals for uni project. They have functions like patient registration, pharmacy management, billing etc. Data should be stored in a databass. Each regional hospital has their unique UI. I thought APIs also should be used. But can't come up with proper one. Pleasesuggest some.
tags: software architecture, suggestions, help
---
Best job hunting hack that worked for me
Tags: career, devtips, tips
Published: 2017-10-21 05:02:26

---
title: Best job hunting hack that worked for me
published: true
description: 
tags: career, devtips, tips
canonical_url: http://hashnuke.com/2017/10/22/best-job-hunting-hack.html
---

Job hunts can be painfully repetitive, with long wait times.

Most Applicant Tracking Systems (ATS) are terrible. Candidates are forced to fill in dozens of fields that are already on the resume. After all this, they still run the risk of the resume getting sucked into a blackhole inbox/app that no one reads.

> In fact, a contact in one popular hosting company I applied to, admitted that no one in the company checked the ATS and gladly offered to forward my resume to the appropriate person.

Here’s what I thought - *“Filling up forms is non-sense”*.

And if even someone does read the resume, it is going to be a HR/recruiter who is going to be screening them.  I wrote a resume that I like to portray myself as - casual. That is a sure-shot way of getting filtered by people who weigh candidates by just what can be read on paper. So filling up the form and sitting alongside a pile of other resumes isn’t going to work for me.

Emails work. And they work best when the mails are sent to the people who can move things - which means no HRs or recruiters.

During one of the job hunts, I came up with a trick and was curious to put it to work:

> Target the companies I like and spend good time to apply to each of them.

* Find a company's opensource projects on GitHub.
* Send a few pull-requests.
* Find someone at the company incharge of the team (Twitter or LinkedIn). I search the Engineering heads.
* Mail them.

```
Hello <name>,

Akash here. I sent some PRs to your <xyz> project on GitHub:

* <short description> - <link>
* <short description> - <link>

I looked at the careers page on your site and found out you are hiring for <xyz position>.

Here are a few links about me:

* https://github.com/HashNuke
* https://hashnuke.com/resume.html

--
Akash
```

## Did it work?
**Short story: Yes** 

I realized if the company I was applying to doesn’t reply to such effort, I most likely won’t fit there.

Good luck on your job hunt.
RSI and vim
Tags: discuss, vim
Published: 2017-10-21 04:30:49

---
title: RSI and vim
published: true
description: 
tags: discuss, vim
---

I have rsi, and thus can't type very well (about 40wpm max, 30 on a normal day.) There are also of course switching costs, which have been well documented elsewhere and are only really a problem if it takes too long which it shouldn't. My current editor is atom, and I know all relevant hotkeys and usage tools for my day to day work. So factoring all of that in would it be worth it to learn? My primary languages are c++ and js if it matters.
Explain how MVVM architecture work like I'm five.
Tags: explainlikeimfive, discuss
Published: 2017-10-20 18:17:01

---
title: Explain how MVVM architecture work like I'm five.
published: true
description: MVVM architecture in Android
tags: 
    - explainlikeimfive
    - discuss
---

I know how to works MVP architecture but I'm a little confused with the logic of MVVM architecture.