teleren/devto huggingface dataset:
Friday Blast #29
Tags: fridayblast, links, post
Published: 2019-01-20 15:24:49

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

[The ultimate guide to progressive web applications (2017)](https://dzone.com/articles/the-ultimate-guide-to-progressive-web-applications) - one of the better developments in the recent tech space has been a resurgence of websites/SPAs under the guise of progressive web applications as viable contenders to native applications. Well worth a read as an introduction, but not that many technical details.

[Hot to structure permissions in a SaaS app (2018)](https://heapanalytics.com/blog/engineering/structure-permissions-saas-app) - a nice article from Heap Analytics on role base access control. There’s resources and actions which can be taken on a resource, and more or less each one requires a _permissions_. Then there’s roles which are groupings of permissions. Finally, there’s users, who are assigned various roles. A bunch of other best practices and links to other resources are present as well.

[12 best practices for user account, authorization and password management (2018)](https://cloudplatform.googleblog.com/2018/01/12-best-practices-for-user-account.html) - tied a little bit with the previous article. This is a topic I’ve covered a bunch of times in this series of links. The perenial advice remains - don’t roll your own.

[Cache coherency primer (2014)](https://fgiesen.wordpress.com/2014/07/07/cache-coherency/) - going lower level with this article. It’s a presentation of cache coherency for single processor and multi-core/multi-processor systems. It starts of with the general invariants and operating mode of caches, and goes on to present what happens in multi-core systems with the MESI cache coherency protocol.

[Atomic operations and contention (2014)](https://fgiesen.wordpress.com/2014/08/18/atomics-and-contention/) - again a lower level article. Presents how atomic operations are implemented in terms of the memory and caches. Covers a little bit the separation of atomics and memory barriers I’ve mentioned before on other Friday Blast posts and why both are needed for different reasons.
Why Magento Web Design is the Darling of Customers
Published: 2018-02-23 13:04:12

---
title: Why Magento Web Design is the Darling of Customers
published: true
description: 
tags: 
---


One common comment from clients who have their website developed or made over with a Magento design by Magento designers is that that they can't believe the finished product has achieved so much. So often the Magento <a href="http://www.bindapple.com/web-design-and-web-development/">web design</a> exceeds all expectations. People often have high hopes for the success of the finished product but Magento web design clients are frequently blown away by the end result.

“The end product has exceeded my initial expectations, in both form and function (it’s beautiful and it works beautifully!).” Elyse Coward, Administrator - IT & Digital Solutions, Hal Leonard

There are many aspects to a well-designed website and at least two of them are appearance and function. When a website is eye-catching, when it is beautiful to look at and attractive in its own right, then half the web designer’s job is complete. But the beauty of itself is not sufficient and the website must function and function beautifully.

It's because so much intelligence and hard work has been poured into the preparation by the Magento web designers that the experience for the visitor is so delightful and smooth. All the activity is below the surface. All the customer need do is to use glide effortlessly through the many pages of the stunning website.

But of course freedom of movement is one thing, being able to carry out a business transaction is another. This is where a Magentoweb design comes into its own. Yes it is a marketing tool in its own right. Yes it is a thing of beauty to be admired and appreciated. But most definitely it is a functional e-store where customers find exactly what they want with ease and security. It's the perfect example of a website which draws repeat customers.
Will desktop #PWAs kill hybrid wrappers like electronjs?
Tags: discuss, webdev, pwa, electronjs
Published: 2018-02-23 12:31:16

---
title: Will desktop #PWAs kill hybrid wrappers like electronjs?
published: true
tags: discuss, webdev, pwa, electronjs
---

We can notice the rise of Progressive Web Apps in recent times. Today I notice desktop PWA support in chrome under a flag (chrome://flags/#enable-desktop-pwas). It installs the apps like a chrome app in OSX which is something similar what wrappers like electronjs does! I personally like electronjs very much becoz if it’s simplicity. Will the new desktop PWAs kill wrappers?
I'm Aarif Habeeb, Ask Me Anything About SEO
Tags: seo, askme
Published: 2018-02-23 11:44:50

---
title: I'm Aarif Habeeb, Ask Me Anything About SEO
published: True
description: Imagine having that one tiny piece of information about SEO that you didn't have before and it unlocks everything you need to drive organic traffic towards your business. I will be glad to answer any question regarding SEO to the best of my knowledge. And if I can't answer it, I will find someone for you
tags: SEO, Ask Me
---

I am SEO Nomad, Work as a self employed <a href="www.aarifhabeeb.com">SEO Consultant</a> and help web and App Developer to make their website well optimize that rank on search Engines and drive traffic to their blogs. I am a technical Content Writer and love to share my view on diverse topics like Chatbots, IoT, AI, Big Data, Deep learning, Machine learning, robotics and digital marketing. Before this I was a CodeIgnetor developer at OnGraph, built website backend, and spent most of my time worrying about new programming updates and languages. So I decided to move in digital marketing and content writing to be up to date with new technologies. 

Now I provide Digital Marketing and SEO training and speak in many college conferences on digital marketing and SEO. 

 
Imagine having that one tiny piece of information about SEO that you didn't have before and it unlocks everything you need to drive organic traffic towards your business. I will be glad to answer any question regarding SEO to the best of my knowledge. And if I can't answer it, I will find someone for you

Ask me anything about SEO I would be happy to help you at free of cost.

Follow me: <a href="https://twitter.com/Aarif_Habeeb">Twitter</a>, LinkedIn
Let's build: 'load to get faster early web development
Tags: picolisp, lisp, functional, webdev
Published: 2018-02-23 09:56:30

---
title: "Let's build: 'load to get faster early web development"
published: true
description: Serve a 'load to get quicker web dev response
tags: picolisp, lisp, functional, web development
---

When trying stuff out or doing early work on a web site or service it can seem slow and fragmented to restart your application server over and over again. 

Instead of churning out all that Ctrl+C or D and possibly also restarting httpGate or nginx at every adjustment you could use a simple little trick that is suitable when testing app modules or just getting started on a project. 

dev.l
```lisp
# libraries for the app server
(load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l") 

(de work () 
    (load "app.l"))

(de go ()
    (server 8080 "!work"))
```

Once you have this you run and forget about it:

```
$ pil dev.l -go -wait
```

Now if you visit localhost:8080 it won't be spectacular. 

Enter some GUI boilerplate into "app.l". 

app.l
```lisp
(app) # assuming you want session handling
(action 
    (html 0 "Test bed for savvy gravy" "@lib.css" NIL
        (<h1> NIL "It's alive!")))
```

Next visit will then look better, and as you work on and save "app.l" and reload localhost:8080 you'll see changes reflected immediately without restarting "main.l". 

app.l
```lisp
(app)
(setq *Awesome T)
(action 
    (html 0 "Test bed for savvy gravy" "@lib.css" NIL
        (if *Awesome
            (<h1> 'awesome "Apparently you're awesome!")
            (<h1> 'notsoawesome "Pretty sure you won't see this!") )))
```

Using this technique 'in production' isn't a good idea since file I/O performance is about as bad as it gets, but compared to restarting the same script over and over manually while allowing a separation of your development helper functions and globals in "dev.l" from the app code in "app.l" will feel like super powers. 

There are of course other ways to achieve this or similar results, you could for example use coroutines or background tasks instead, laying ground for a more sophisticated integrated development and production administration environment. Or whatever it's called when you program your servers by pew-pew:ing messages at objects and watching web services grow out of it. 

Next time we'll create a small guestbook application. 

Stagling@Patreon for coffee donations, unless you'd perhaps, y'know, like to hire me or something, then I'm sure we could work something out.
Rust instead of Ruby: a case study
Tags: ruby, rust, performance
Published: 2018-02-23 09:21:32

---
title: Rust instead of Ruby: a case study
published: true
description: How and why Tilde/Skylight migrated from Ruby to Rust for their monitoring agent
tags: ruby, rust, performance
---

Through [Highscalability.com](http://highscalability.com/) I came across a case study titled ["How Rust is Tilde’s Competitive Advantage"](https://www.rust-lang.org/pdfs/Rust-Tilde-Whitepaper.pdf) in which it is explained how the company saved time and money (the customer's and their own) and created a very robust monitoring agent for their service. They were apparently also able to "retrain" their workforce without spending an excessive amount of time on the training or handling gratuitous complexity.

The first version was in Ruby, sometimes exceeded 100MB in memory occupation, wasn't very robust and created issues for their customers.

The new version was in Rust, its memory occupation was around 8MB, the customers were happier and they were able to deliver more features with the same occupation of memory and stability.

![memory occupation](https://thepracticaldev.s3.amazonaws.com/i/kboa7n8pch2jjrp10akd.png)

(taken from the case study)

I find this very remarkable.

Not being fluent in either language I would be curious to know if they considered Go at all and if so why they discarded it.

Bonus point: our own @vaidehijoshi is quoted in the case study :-)

You can find it here: ["How Rust is Tilde’s Competitive Advantage"](https://www.rust-lang.org/pdfs/Rust-Tilde-Whitepaper.pdf)
Tell Your Story: Has your application been hacked?
Tags: discuss, hacking, programming
Published: 2018-02-23 06:28:15

---
title: "Tell Your Story: Has your application been hacked?"
published: true
description: Tell Your Story (TYS) is a post type (kind of similar to ELI5, but more personal) I want to force. This time, I want to know about your stories of beeing hacked.
tags: #discuss, #hacking, #programming
---

Tell Your Story: Has your application been hacked? If so, what was your mistake to let that happen, what did you learn from it, and what were the consequences?
Firestore permissions error and what to do about it 
Tags: debugging, firestore, help
Published: 2018-02-22 23:41:38

---
title: Firestore permissions error and what to do about it 
published: true
description: A post-debugging note for those who run into the same firebase issue
tags: debugging, firestore, help
---

While writing a "cloud function" on Firebase, my computer couldn't write to firestore while my co-worker's computer could. No matter how many times I logged out and logged in, I got this error:

```
error: { Error: Missing or insufficient permissions.
    at /.../functions/node_modules/grpc/src/client.js:554:15 code: 7, metadata: Metadata { _internal_repr: {} } }
```

The problem turned out to be related to using `firebase logout` and `firebase login` again. This reply to the GitHub issue provides a workaround:

https://github.com/firebase/firebase-tools/issues/344#issuecomment-303848830

Specifically:


> - Install and initialize gcloud: 
> - https://cloud.google.com/sdk/downloads#interactive
> - Run gcloud auth application-default login in any directory
> - Run firebase serve --only functions
Would you like to give a DEV talk/workshop?
Tags: meta, career, cfp, talks
Published: 2018-02-22 22:22:55

---
title: Would you like to give a DEV talk/workshop? 
published: true
description: Get in touch and submit your talk. 
tags: meta, career, cfp, talks
---

Since we [announced DEV workshops](https://dev.to/ben/announcing-sustaining-memberships-for-devto-4ad9) earlier this month, we've gone live five times. It's been great fun figuring out the streaming technology and coordinating with our excellent speakers. Every event feels like a mini-conference and I'm looking forward to, one day, organizing some in-person DEV events.

Here's Anna giving an Introduction to Testing with React & Jest. If you zoom in, you'll see that she's using a doggy compatibility app for the demo 😊 🐶

![livestream-screenshot](https://thepracticaldev.s3.amazonaws.com/i/u2sjkipn8cp8iw69bifs.png)
Anyway! Let me get to the point of this post. Many of you have reached out about becoming a speaker, so here are the deets:

- Talks range from 30 - 90 minutes, up to you.
- We're super flexible on _when_ you can present. Since people are tuning in from all around the globe, it'll always be the right time for _someone_. 
- No topic is too general, niche, beginner, or advanced. 

If you're interested in giving a talk, please [fill out this form](https://thepracticaldev.typeform.com/to/myIxdy) and I'll get in touch!

And for those of you who haven't tuned in yet, here are our [upcoming events](https://dev.to/events).
Nothing in Software Development is Obvious
Published: 2018-02-22 16:04:51

---
title: Nothing in Software Development is Obvious
published: true
description: There is no "learn everything" course in software development.
tags: 
cover_image: https://cl.ly/1x2s1J053E3R/Image%202018-02-22%20at%2011.13.13%20AM.png
---

I'd recommend this post as good primer on important security concepts:

{% link https://dev.to/robdwaller/four-security-principles-that-software-developers-should-follow-24gi %}

But it's the first couple comments on the article that caught my attention. Nick Taylor responded with an additional tip that might be "potentially obvious".

{% devcomment 2c60 %}

To which Rob responded:

{% devcomment 2c65 %}

Nothing is obvious in our field. Expertise branches off in so many directions that it's possible for anyone to have a blind spot to any concept. **There is no "learn everything" course in software development.** It's a mishmash of ongoing acquisition of knowledge from wisdom sharing economy. We can never assume that our input to the conversation is not helping someone grasp a topic for the first time.

I'd imagine that Nick's comment was more directed as a helpful additional tip for future readers of the post who might want to explore further concepts. And Rob's comment exemplified exactly why this is valuable.

Software development knowledge gets diffused because we get to be flies on the wall to so many wonderful online conversations. Every time you send a signal into the world in this way, you're contributing to the future of the field. The principle of  least privilege is standard enough [to have a Wikipedia page](https://en.wikipedia.org/wiki/Principle_of_least_privilege) and it's a fairly intuitive concept once you've taken it in, but that doesn't mean folks _just know it_. It's conceivable that a developer could learn this on day one of their career or day 5,000. You just don't know.

Taking the time to helpfully mention what you think might be obvious can be incredibly helpful to the lurkers on the web that might learn something new today. It's also a chance to reaffirm your correctness on the subject, so long as the follow-up comments are constructive.

Keep sharing the wisdom, it's how we grow.
[SOLVE] "MongoDB - command not found: mongo"
Tags: mongodb, javascipt, node, help
Published: 2018-02-22 13:34:22

---
title: [SOLVE] "MongoDB - command not found: mongo"
published: true
description: 
tags: mongodb, JavaScipt, NodeJS, help
---


Hi Everyone

i am new in JS & mongodb.
i tried to install mongodb for global on my mac. but I have a problem.
"mongod" command is works

<img src="https://thepracticaldev.s3.amazonaws.com/i/h22ky7te7220jwmpa5vc.png">

but when I try "mongo" command, it can not work.

<img src="https://thepracticaldev.s3.amazonaws.com/i/0sphbducy28r9kj7eh1z.png">

Please help

#mongodb #javascript #nodejs
Is there any Unreal Engine Laboratory Scene/Environment to Free Download? This is for academic project on a VR Chemistry Lab.  
Tags: vr, beginners, help, unreal
Published: 2018-02-22 13:15:37

---
title: Is there any Unreal Engine Laboratory Scene/Environment to Free Download? This is for academic project on a VR Chemistry Lab.  
published: true
description: I am doing an academic project on VR chem lab. I have no mentor and I am self studying mostly. Because there is a limited time, please help me to find a free laboratory scene or environment.
tags: VR, Beginner, Help, Unreal   
---
Crowdsourcing a portrait of an ideal manager
Tags: discuss, management, people
Published: 2018-02-22 08:02:15

---
title: Crowdsourcing a portrait of an ideal manager
published: true
description: Let's paint a collective portrait of a good boss.
cover_image: https://thepracticaldev.s3.amazonaws.com/i/lxjpdar4gw7c9l9itdv5.jpg
tags: discuss, management, people
---

Let's crowdsource an ideal manager!

What would you like your manager to do?

What would you like your manager _not_ to do?

Share examples too, if you can.
Things I have learned working remotely for 3 years
Tags: career, remote
Published: 2018-02-23 15:49:40

---
title: "Things I have learned working remotely for 3 years"
published: true
tags: career, remote
canonical_url: https://www.geekytidbits.com/things-i-have-learned-working-remotely-for-3-years/
---

About 3 years ago, I [joined the YNAB team](https://www.geekytidbits.com/joining-you-need-a-budget/). This was my first remote work experience and although I have come to really enjoy working remotely, it hasn’t been without some challenges. I did some things wrong early on, a few things right, and I am still learning as I go.

## I really like it

First of all, I want to mention that I have really come to enjoy working remotely. The reasons:

1. **Control of my working environment** - I am able to create a quiet, comfortable working environment in my home. For me, this is a huge boost to my productivity and happiness.
2. **Geographical flexibility** - This is pretty obvious but I sure do enjoy being able to have flexibility in where I work, geographically. My wife stays at home with the kids so if we want to take a trip out of town or out of state to visit family, we can stay for _weeks_ if we want to because I can just setup and work from there.

## Lessons learned

One of the first (and best) things I did when I knew I would be working remotely, was reach out to a buddy of mine I’ve known since college to get his advice on remote work. He had been working remotely for about 5 years by that time and I knew he would have plenty of good tips. And I was right. He was able to give me some things to watch out for and some ideas for settings up some positive habits early on.

I put those tips into practice and figured a few things out that work well for me. The biggest lessons I’ve learned that make remote work sustainable are:

1. **Physically separate work and home** - my office is in the far corner of the house with 2 doors of separation from everything else. When I’m home, I don’t see my office and it’s a bit out of reach. If my office is visible I lose separation of work/home and this can lead to dread/burnout.
2. **Tear down at the end of the day** - when it’s quitting time, I make a point to get to a good stopping place, shut my laptop all the way down and close my office door. It’s tempting to plan to “finish some stuff up after dinner and kid’s bedtime” but it’s a dangerous precedent because it can lead to burn out and take away from family time.
3. **Work somewhere else a few times a week** - It took me awhile to learn this but to prevent cabin-fever, it’s good to go work somewhere like a coffee shop for a few hours a couple of times a week because it helps me interact with actual people and mix things up a bit.
Reading the message written in binary for Ruby 25th Anniversary using by mruby.
Tags: mruby
Published: 2018-02-22 05:20:07

---
title: Reading the message written in binary for Ruby 25th Anniversary using by mruby.
published: true
description: 
tags: mruby
---

Hello,I found this tweet.

{% twitter 966421801705267200 %}

I wonder what is written and I tried to read using by mruby.

## Code

It seemed that the binary code is ascii code.

I wrote the decode binary code in mruby.


```ruby
rawData = "01001001 00100000 01001100 01101111 01110110 01100101 00100000 01010010 01110101 01100010 01111001 00101110"
puts rawData.split(" ").map{|c| c.to_i(2)}.map{|c| c.chr("UTF-8")}.join
```

## Result 

```txt
bin/mirb 
mirb - Embeddable Interactive Ruby Shell

> rawData = "01001001 00100000 01001100 01101111 01110110 01100101 00100000 01010010 01110101 01100010 01111001 00101110"
 => "01001001 00100000 01001100 01101111 01110110 01100101 00100000 01010010 01110101 01100010 01111001 00101110"
> puts rawData.split(" ").map{|c| c.to_i(2)}.map{|c| c.chr("UTF-8")}.join
I Love Ruby.
 => nil
> 
```

I noticed that Ruby has putc, but mruby didn't have.


## epilogue

to tell the truth,I first time I wrote decode code in JavaScript.
but I thought this is a chanse to learn mruby,so I wrote this in mruby.

# Link

- https://github.com/mruby/mruby
Removing self from Android implicit intent
Tags: android
Published: 2018-02-22 04:54:07

---
title: Removing self from Android implicit intent
published: true
description: 
tags: Android
---

Android provides an [implicit intent](https://developer.android.com/guide/components/intents-common.html) to open apps based on user's intent (eg., I want to take a picture). It is simple yet very useful feature for users.

It may however be tricky when app can handle multiple implicit intent. For instance, if you develop a photo sharing app, your app can be a both receiver and sender of 'export an image' intent at the same time. When your users try to export an image from your app, it'd be awkward if your app is also in the receiver list.

To avoid situation like this, you can `queryIntentActivities` and explicitly filter intent as follows:



```:java
public static Intent createChooser(Context context, Intent target, CharSequence title) {
  List<ResolveInfo> resolveInfoList = context.getPackageManager().queryIntentActivities(
      target, PackageManager.MATCH_DEFAULT_ONLY);
  if (resolveInfoList.isEmpty()) {
    return Intent.createChooser(target, title);
  }

  Collections.sort(
      resolveInfoList, 
      new ResolveInfo.DisplayNameComparator(context.getPackageManager()));
  List<Intent> targetIntents = new ArrayList<Intent>();
  for (ResolveInfo resolveInfo : resolveInfoList) {
    if (context.getApplicationContext().getPackageName().equals(
        resolveInfo.activityInfo.packageName)) {
      continue;
    }
    Intent intent = new Intent(target);
    intent.setPackage(resolveInfo.activityInfo.packageName);
    intent.setClassName(
        resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
    targetIntents.add(intent);
  }

  Intent chooserIntent = Intent.createChooser(targetIntents.remove(0), title);
  chooserIntent.putExtra(
      Intent.EXTRA_INITIAL_INTENTS, 
      targetIntents.toArray(new Parcelable[]{}));
  return chooserIntent;
  }
}
```
Showcasing your work/Promoting yourself
Tags: discuss, suggestions
Published: 2018-02-22 04:34:14

---
title: Showcasing your work/Promoting yourself
published: true
description: 
tags: discuss, suggestions
---

As a software developer who is just starting, how should one promote himself. What are the important things/tasks that he needs to do consistently to build a good portfolio of their work or theirselves?