teleren/devto huggingface dataset:
When lazy isn't ugly any more (HTML & CSS)
Tags: webdev, css, html, npm
Published: 2019-03-15 09:13:59

---
title: When lazy isn't ugly any more (HTML & CSS)
published: true
description: Make you HTML and CSS look good
tags: webdev,css,html,npm
---
![](https://thepracticaldev.s3.amazonaws.com/i/a01sriqp8i8jvrhs1zq4.jpg)

## How lazy is ugly in first place
There are people out there who have enough OCD to write well ordered CSS & HTML from the beginning who will never need the tools I want to introduce to you. Unless they are working in a team with people who don't. I am definitely none of the well structured code writers. 

When it comes to me and I need to add a new class or a property in CSS I will write it at the end.

When again I have to read my code my first thought is 'who wrote this crap' since I work a lot with people who have the discipline to order their code.

Since this happened all the time I decided to look for tools which can support me and my team mates by reading my code.

## Pretty CSS
For my CSS (or SCSS) I am using [CSSComb](http://csscomb.com/). With this tool I can define an order of the CSS properties which I do desire and if I run it, it will make sure the properties are sorted properly.

## Pretty HTML
For my HTML files I haven't found a tool which will satisfy my needs so I wrote a npm-module myself which is [class-sort](https://www.npmjs.com/package/class-sort). With this tool I can define an order for classes which works pretty well for my purposes. If I haven't defined an order for a group of classes, these will be ordered alphabetically after the defined ones.

## Conclusion
If you want your code to be a little bit (or a lot) cleaner, you can look out for tools which will suit your needs. If there isn't any by now, why not doing it by yourself. 

The biggest challenge with this tools is to find one order structure which is accepted by all your team members, since you overwrite the whole file if you use it.

#### This is my first article. Please be kind.
Day 2 Learning Javascript
Tags: beginners
Published: 2019-03-15 08:00:39

---
title: Day 2 Learning Javascript
published: true
description: A beginner's journey in to Javascript
tags: #beginner
---

Numbers, Strings and Boolean...Oh My!

Ok, so far I've learned a few Javascript types. Numbers are pretty self explanatory , and strings are just text. "It\'s good stuff". (Yeah, I'm at the *beginners* beginners level.)

Boolean reminds me of binary numbers, which is cool. It's either true or false, on or off, a 1 or a 0.

Comparisons are interesting.

**true !== true** = false

Oddly enough that makes sense to me. Now, remainder/modulo operators on the other hand...umm. Maybe it's because math was never my strongest suite, but that one right there has me a little confused. For example, I know 12 % 5 creates a remainder of 2, but I don't quite understand how we got there. Definitely an area where I'll need to do a little more studying.
SAP hace Open Source su herramienta de análisis de vulnerabilidades para Java y Python
Tags: tools, java, spanish
Published: 2019-04-02 15:09:45

---
title: SAP hace Open Source su herramienta de análisis de vulnerabilidades para Java y Python
published: true
tags: Tools, Java, Spanish
canonical_url: https://www.campusmvp.es/recursos/post/sap-hace-open-source-su-herramienta-de-analisis-de-vulnerabilidades-para-java-y-python.aspx
cover_image: https://www.campusmvp.es/recursos/image.axd?picture=/2019/1T/sap-vat.png
---

SAP recientemente ha hecho Open Source y ha liberado por tanto el código de su [herramienta de evaluación de vulnerabilidades de código](https://sap.github.io/vulnerability-assessment-tool/) VAT (_Vulnerability Assesment Tool_).

La herramienta sirve para analizar código de **Java** y de **Python** , y ha sido probada durante dos años internamente, realizando más de 20.000 análisis en unos 600 proyectos de la compañía.

Se centra en la detección de componentes Open Source que utilice tu proyecto y que sean vulnerables, y utiliza tanto análisis estático como _testeo_ automatizado para determinar el contexto en el que se ejecuta el código y mejorar la precisión de los resultados. Así:

- Detecta si hay dependencias de componentes de código abierto que tengan vulnerabilidades conocidas y además te informa de novedades de seguridad relacionadas con ellos.
- Recaba evidencias sobre la ejecución del código vulnerable en diversos contextos de la aplicación
- Da soporte a los desarrolladores para que puedan arreglar los problemas.

Trata de abordar todos los problemas especificados en el [Top10 de OWASP A9](https://www.owasp.org/index.php/Top_10-2017_A9-Using_Components_with_Known_Vulnerabilities), que suelen ser las causas de la mayor parte de las brechas de seguridad. Utiliza las [bases de datos de vulnerabilidades  del gobierno estadounidense](https://nvd.nist.gov/), y la [lista CVE](https://cve.mitre.org/). Funciona tanto en desarrollo como en producción.

Según SAP, la mayor parte de los problemas de seguridad que se producen en las aplicaciones expuestas a Internet son causadas por no actualizar componentes que se sabe que son vulnerables. Muchas empresas tardan meses en hacerlo y otras no lo hacen nunca. Con VAT la idea es que puedas arreglarlas a las pocas horas o como mucho, días.

Se puede usar directamente como un **contenedor Docker** para ponerlo a funcionar de manera rápida y sencilla. Y por supuesto se puede descargar el código fuente y compilarlo.

Aquí te dejamos [la página en Github del proyecto.](https://github.com/SAP/vulnerability-assessment-tool)

>**Post original**: https://www.campusmvp.es/recursos/post/sap-hace-open-source-su-herramienta-de-analisis-de-vulnerabilidades-para-java-y-python.aspx
How To Start Your Career As A Product Designer
Tags: productdesigner
Published: 2019-03-15 07:08:11

---
title: How To Start Your Career As A Product Designer
published: True
description: I hope you understand what product design is actually before reading this blog. When I say Product design here I am talking about Digital Product Design.
tags: Product Designer 
---
I hope you understand what product design is actually before reading this blog. When I say Product design here I am talking about Digital Product Design. I will discuss the three stages that come in the life of every  Product designer.

1) Copy

2) Change

3) Create
 

Are these the only three stages? Of course not. They’re only a guide to help you to start your career in Product Design based on my experience.

Before proceeding to Stage 1 I am expecting you to have some basic knowledge about tools like Sketch, XD,  Photoshop or Illustrator, and theory like Principles of UI, Laws of UX and etc. If you don’t please start with them first. Start learning things from Youtube, online courses, Quora or any other sources you prefer. Knowledge is everywhere!

1) Stage 1: Copy

This is the first stage where you should start follow designers on Dribble, Behance, Instagram or YouTube and try to copy their well-created designs. Copying doesn’t only mean recreating things but also understanding the science behind it. You need to understand the composition, typography and color schema used by the designer whose work you are recreating. Understanding their thinking patterns will help you improve your own skills.

Now the question is, Is it okay to copy?

Yes! It’s definitely okay to copy if you are doing it for learning purpose.

Just don’t publish the design as yours.


2) Stage 2: Change

Now, this is the second and most important stage where you will not just imitate the work of the designers you are following but reinvent it by adding your own flavors. This is the time where you have to start publishing your work. Don’t be afraid to start sharing your designs, even if they are inspired by others work instead give them credit.


3) Stage 3: Create

Till this stage, you will learn to create your own designs and, 1st and 2nd stage designers will follow and copy your work. As you become more seasoned in your craft, you will see your transition into a Product Designer.

Even after this stage learning will never end, no matter how senior a designer you become.

Conclusion

If you want to be a good product designer, don’t delay and don’t doubt yourself. Go to Dribbble, Behance and follow designers whose work you admire. Pick your favorite shots and start copying. Keep doing it over and over and you’ll develop skills over time. Eventually, you’ll be able to create the same things the way your favorite designers can do.

Once you understand the basics of design, try to think outside the box, and create new things. Be atypical and unique.


The Article has been originally written on Terasol Blog (www.terasoltechnologies.com/blog/ )
Friday Blast #64
Tags: fridayblast, links, post
Published: 2019-03-17 19:21:37

---
title: Friday Blast #64
published: true
tags: friday_blast,links,post
canonical_url: https://horia141.com/friday-blast-64.html
series: "Friday Blast"
---

Made it to 2^6 Friday blasts!

[Lies programmers believe about calendars (2018)](https://boingboing.net/2018/09/27/corner-cases-everywhere.html) - fun little article about the complexities of dates, times and calendars. The topic’s been covered here before. This stuff is super complex because people keep changing stuff all the time. Almost anything you could think of has a counter example - even time running “forwards”.

[The history of infrastructure at Zendesk - constant tradeoffs (2018)](https://medium.com/zendesk-engineering/the-history-of-infrastructure-at-zendesk-constant-tradeoffs-bdfa916ff4c3) - Zendesk seem to be doing a lot of interesting stuff as a “service at scale”. Interesting because of their take on AWS and the constraints they had - which lead to not using it despite several opportunities to _get on the bandwagon_. Basically they were always a bit bigger that what AWS could offer so it made sense to use something else.

[The design and implementation of modern column-oriented database systems (2018)](https://blog.acolyer.org/2018/09/26/the-design-and-implementation-of-modern-column-oriented-database-systems/) - an overview of a paper I _should_ read at some point. Columnar DBs are the workhorses of analytics workloads. This article covers some design approaches for them. Compression, bitmap indices and even direct operations on compressed columns are some of the key requirements for good/great performance.

[Marmaray: an open source generic data ingestion and dispersal framework and library for Apache Hadoop (2018)](https://eng.uber.com/marmaray-hadoop-ingestion-open-source/) - Uber’s “data ingestion” library. Uber’s “data system” has been featured on the blog before. It’s interesting in itself - Uber is a big tech company, but with a very narrow focus, so these sorts of systems tend to be very specific to them. It's also good to keep tabs on what _the competition_ is doing. The main problem is that of controlling how data gets “ingested” and stored. There’s multiple producers (Kafka, MySQL, Cassandra etc.) and multiple consumers (S3, HDFS, Cassandra, etc). In order to avoid an `NxM` problem, Marmaray was designed. It’s a system atop Spark which controls ingestion (reads) and dispersal (writes). It’s also centralised and operated by a single team and offered as a service to other teams.
Why I Study Computer Science as a Self-Taught Developer
Tags: computerscience, opinion, philosophy, ramble
Published: 2019-03-15 06:12:40

---
title: Why I Study Computer Science as a Self-Taught Developer
published: True
description: What is my motive for continuing to study, despite having the beginnings of a career in programming already?
tags: Computer Science, Opinion, Philosophy, Ramble
---

Today I asked myself the question: Now that I've established the beginnings of a career in programming, what is my motive for continuing to devote time to studying computer science? 

Here is my answer: 

## The joy in programming is about craft.

Craft is a deep topic in and of itself. For now, let's say that it has to do with the intrinsic reward of a thing done in it's own right. Craft relates to that universal appreciation for the beauty of a thing done well. 

### Depth

I think it's great that you can go a long way into the field of programming without ever touching the theoretical aspects. That makes room for bright, talented new people from all kinds of backgrounds to join in a fairly lucrative and deeply rewarding field.

However, to develop a truly justified confidence in one's software design choices, a developer needs to see past the surface of the field and into its depth. It would be impossible for any craftsperson to really enjoy their work fully without an informed degree of confidence in the the quality of the results. 

One could learn the basic syntax of a dozen programming languages and work on a slew of different web applications over the course of a decade all whilst remaining eternally a novice. Depth is the precise difference between this person and someone who demonstrates authentic understanding and lucid competence in their design choices.

### Tangibility and Abstraction

Many programmers get hooked into the field by the awesome reward of getting a simple program to work and produce a satisfying result. The tangibility and immediacy of this makes programming accessible and fun. It's a great help to us.

However, to really understand programming we also need to develop a taste for understanding it as a fundamentally abstract mental discipline. This is really the evolution from "coding" to "software design." The reward in that mental discipline is different from the fun of getting a neat result quickly. It's a much slower and more profound reward that is characterized by the feeling of truly grasping a beautiful or interesting idea.

A programmer engaged in software design (which is, by definition, any programmer) is a very interesting kind of craftsperson. This is a craftsperson whose design artifacts hang somewhere between the abstract and the concrete. The programmer both embodies theoretical models in concrete form (coding) and distills theoretical models from some less precise set of ideas (software design). The need to morph between different ways of thinking leaves the programmer with much to do and learn in this life, but isn't that kind of challenge exactly what we like?

### Inspiration

[The Craftsman by Richard Sennett](https://www.amazon.com/Craftsman-Richard-Sennett/dp/0300151195)
Podcast about the process of building a podcast directory
Tags: podcast
Published: 2019-03-15 03:23:42

---
title: Podcast about the process of building a podcast directory
published: True
description: 
tags: podcast
---

https://overcast.fm/+RG5iIxH8M
[Episode Page](https://baib-podcast.com)
[Revenue Research](https://revenueresearch.co/)
The Most Exciting Features Coming to Android Q
Tags: android, google
Published: 2019-03-15 00:25:57

---
title: The Most Exciting Features Coming to Android Q
published: true
description: List of Google's best additions for users
tags: Android, Google
canonical_url: https://www.trevornemanic.com/blog/2019/3/14/the-most-exciting-features-coming-to-android-q
---

Google has publicly released Android Q Beta, the newest version of Android. With it comes many nice-to-have improvements for users. Google has largely focused on privacy, security, and performance, while preparing for the latest trends like foldables. Without further ado, let's dive into the best features in Android Q.

## Foldables ##
Foldable phones have made their great debut in 2019. Whether you love them or hate them, expect to see a lot of news about companies, developers, and users trying out this new form factor. Developers won't be able to test foldables on the existing Android emulator yet (Google is working on that).
![Foldable phone image](https://thepracticaldev.s3.amazonaws.com/i/hwet3nwtbpxjhrra07zm.png)

## Granular Control for Location Permissions ##
Google has responded to the outcry of users to protect their privacy. So long to the creepiness of giving away your location at all times. Now, the location permission option will have an additional option to only give location when the app is in use. 
![Location permission option](https://thepracticaldev.s3.amazonaws.com/i/la1grucazdkpad5rk2ym.png)

## WiFI Performance Modes ##
Mobile gaming has emerged as a powerhouse in the app landscape. However, latency has remained an issue since many gamers rely on WiFi. Android Q will ship with the ability for apps to tell the device to use low-latency or high-performance modes. This will greatly improve the experience of mobile gamers everywhere. 

## Dynamic Depth Format ##
Android phones have come a very, very long ways in terms of camera quality. Android Q will usher in another significant advancement: Dynamic Depth Format. This new format will allow apps to provide improvements to blur and similar features. Dynamic Depth Format will give app developers with the tools to actually see depth, something they have been simulating to various degrees of success. Expect to see much greater Augmented Reality and 3D images too.
![Dynamic Depth Format](https://thepracticaldev.s3.amazonaws.com/i/09ys24piia55u93zn63b.png)


Interested in trying these features out on your own? [Sign up for the beta!](https://www.google.com/android/beta)


Further reading
Official Post by Google: https://android-developers.googleblog.com/2019/03/introducing-android-q-beta.html
Software Engineering VS Civil Engineering
Tags: discuss, architecture, testing
Published: 2019-03-15 00:13:39

---
title: Software Engineering VS Civil Engineering
published: true
description: 
tags: discuss, architecture, testing
cover_image: https://upload.wikimedia.org/wikipedia/commons/7/77/Kiev_-_bridge_construction.jpg
---

Today, I came across this tweet from Thomas Fuchs:

{% twitter 1106333485407617025 %}

So I started wondering about what makes software engineering different from civil engineering, and how we could make more reliable software. I replied with:

{% twitter 1106333917097938944 %}

And then thomas came back with

{% twitter 1106334212490256385 %}

{% twitter 1106335784083341313 %}

So...

  - Are there things we can learn from civil engineering to make software more reliable?
  - Are there inherent differences that make creating reliable software harder than creating reliable constructions?
Automate Flutter App Releases
Published: 2021-05-07 16:33:33

---
title: Automate Flutter App Releases
published: true
date: 2019-03-15 00:00:00 UTC
tags: 
canonical_url: https://rodydavis.com/posts/automate-flutter-apps/
---

 **TLDR** You can find the script [here](https://gist.github.com/rodydavis/774b36e32d7efa882cca8dd16da6e74c).

<script src="https://gist.github.com/rodydavis/774b36e32d7efa882cca8dd16da6e74c.js"></script>

Make your life easier and automate your builds to beta and production!

## What you need [#](#what-you-need)

- [Fastlane](https://fastlane.tools/) setup in each directory
- [build\_runner](https://pub.dartlang.org/packages/build_runner) as a dependency
- Git Project in VCS

## Initial Setup [#](#initial-setup)

- Download [this file](https://gist.github.com/rodydavis/774b36e32d7efa882cca8dd16da6e74c)
- Put it at the root level of your flutter project
- Open the terminal and navigate to your project location
- Enter this command: chmod +x [release.sh](http://release.sh/)

## Usage [#](#usage)

Now you can call this script!

- For beta: `./release.sh beta`
- For production: `./release.sh release`

## Overview [#](#overview)

- Bump the version numbers if you are using the version in the pubspec.yaml
- Release the apps with Fastlane
- Format all Dart Files
- Clean Project
- Rebuild classes
- Add commit messages
- Updates Cocoa Pods
 ![](https://rodydavis.com/.netlify/functions/ga?v=1&_v=j83&t=pageview&dr=https%3A%2F%2Frss-feed-reader.com&_s=1&dh=rodydavis.com&dp=%2Fposts%2Fautomate-flutter-apps%2F&ul=en-us&de=UTF-8&dt=Automate%20Flutter%20App%20Releases&tid=G-JQNPVBL9DR)
EL Passion Showcase
Tags: opensource, codequality, testing, agiledevelopment
Published: 2019-03-14 22:22:47

---
title: EL Passion Showcase
published: true
description: A sneak peek on how we work at EL Passion
tags: open-source, code-quality, testing, agile-development
---

**[EL Passion](https://www.elpassion.com)** is a product house who can help you turn your idea into a great product. 

One of the values that are core to **EL Passion** team is the high quality of our work. Since we're very proud of our capabilities, we've decided to showcase some of our finest skills. 

In the repository, you can find examples of our work split into different categories:

* **Code quality & testing** - describes how the team measures the code quality and achieves the highest standards.
* **Dribbble shots** - we've challenged ourselves to implement the visually pleasing Dribbble shots created by our designers. This category showcases the results.
* **Solving technical problems** - contains the examples of nice and easy solutions to the typical problems we face during the product development.
* **Meet the Team** - presents our efforts to share the knowledge outside of the company. 

Visit [EL Showcase repository on GitHub](https://github.com/elpassion/showcase) to explore the content.

## License

Copyright © 2019 [EL Passion](https://www.elpassion.com)
Runs of Digits in Pi
Tags: uncategorized
Published: 2020-02-03 19:49:57

---
title: Runs of Digits in Pi
published: true
date: 2019-03-14 22:00:09 UTC
tags: Uncategorized
canonical_url: https://engelke.dev/2019/03/14/runs-of-digits-in-pi/
---

My colleague, [Emma Haruka Iwao](https://twitter.com/Yuryu), [just published the decimal value of Pi](https://cloud.google.com/blog/products/compute/calculating-31-4-trillion-digits-of-archimedes-constant-on-google-cloud) to 31,415,926,535,897 places. It’s an amazing accomplishment for all sorts of reasons, not least being how to run a calculation across many machines over several months successfully. Google Compute Engine’s [Live Migration](https://cloud.google.com/compute/docs/instances/live-migration) capability was key in keeping it running without a break.

But now, how about a much less amazing accomplishment? I wrote a program to scan those digits to look for runs of the same digit. I got the digits from Emma’s results. She has set up [a web service anyone can use](https://pi.delivery/#apipi_get) to fetch a bunch of the digits on demand. Technical details after a few results below.

How far do you have to go in the decimal value of Pi to find two identical successive digits? It turns out to be only a couple of dozen places. ’33’ is found at positions 25 and 26 (counting the first ‘3’ in Pi as position 0, the decimal point as position 1, and so on). Want to find three identical digits in a row? There’s a run of ‘111’ starting at position 34.

Interestingly (at least to me), the first run of more than three digits has six identical digits in a row: ‘999999’ starting at position 763. Want a run of seven? You’ll have to go to position 710,101 to find ‘3333333’. How about a run of eight? I don’t have the answer. I stopped my program from scanning the digits after about 10,000,000 places without finding that long a run.

I wrote a simple Python program to ask the web service for a thousand digits at a time (the most it will serve for each request), and scanned for long runs of digits. I say it’s simple, but it took me at least a dozen tweaks to get it working right. Still, the only special feature of it is how it gets its data: it makes an HTTP GET request to `https://api.pi.delivery/v1/pi?start=0&numberOfDigits=1000` (with the 0 and 1000 replaced by the actual starting point and number of digits you want). The response is a JSON object with one field called `content`. The value of that field is a string containing the digits.

It’s a nice little programming exercise. Try it yourself, and see if you can make as many errors as I did before you get it working.