Read my book

I wrote a book about Webpack and React. Check it out!

Friday, February 12, 2016

Discovery and Quality Services for npm

There are a lots of npm packages around these days (~240k at the time of writing). How to discover the ones you need? Also, how to know which ones are worth using? GitHub stars and forks tell something about popularity, but they don't tell a lot about quality. I've tried to list services I'm aware of in this post:

Discovery Services




Quality Services

I've used Webpack as an example below so you get some concrete data to study:

  • Code Climate
  • bitHound
  • Gemnasium
  • Node Security Project. They provide a tool known as nsp that can be used to check your project against known vulnerabilities.
  • NodeChecker - This tool seems to have stalled. But based on the latest results, roughly only half of all packages have some sort of tests. The real figure might be lower now that npm has grown.
  • allnpmviz3d - This services provides a 3D visualization of npm. You can use it to study dependency graphs in a visual manner.


Mirrors

I managed to find only single mirror. There used to be more, including a EU one. I'm not exactly sure what happened. The current situation is a little worrying at least. Now we are relying on npm infrastructure to work always.


Conclusion

I feel one of the greatest challenges npm is going to face in the near future has to do with discovery and package quality. The amount of packages is growing at a scary pace. I haven't done the math, but it wouldn't surprise me if it broke the limit of 300k packages during this year. It just grows faster and faster.

I hope the lists above help you to evaluate the packages you might want to use in a more objective manner. Spending some time researching can save a lot of time over longer term. Project popularity itself isn't any guarantee of quality. It just tells you that the problem it solves is an important one. Perhaps marketing worked and the project went viral. Maybe more could be done to help the consumers of the packages.

It could be a neat idea to try to combine discovery and quality services in a more concrete manner. I hope we see more innovation in this space as JavaScript keeps getting more and more popular. The quality problem is a very acute one especially as you begin to see JavaScript in the enterprise space.

Tuesday, January 26, 2016

Afterthoughts on CMADFI 2016

The venue was posh
I happened to find CMAD (Community Manager Appreciation Day) a while ago by chance. As Finns tend to take things more seriously than other people, we've set up an event known as CMADFI (Finnish only) around it. It began with fifteen people a few years ago. This year's edition managed to attract around 275 people in my home town.

Given the event was free and conveniently located, I didn't have any good reason not to visit it. I happen to do some level of community management myself through my SurviveJS effort, so sharpening my understanding certainly doesn't hurt. I think visiting CMADFI was worth it.

Theme - Employee Advocacy

The event was structured around the theme of employee advocacy. Community management, or marketing in general, is something that applies within an organization itself. Especially in bigger organizations people can be absolutely clueless of what's going on at different parts of it.

You can easily end up with silos. Silos tend to lead to wasted effort and unnecessary friction. Employee advocacy can help in this regard as it aims to lower boundaries of communication.

Event Format

I found the event format somewhat refreshing. Rather than having to sit through hour long lectures, event talks were fixed to 15 minute slots on a single track. I think this worked quite nicely. This allows you to get exposed to many ideas.

Even if some talks are a bit weaker or not so relevant for you, not a lot of time is wasted. It would be very interesting to extend this model so that the audience could vote which topics to discuss in a greater detail on a second day of an event.

I think it was a great move by the authors to compile a single page with all the slides (Finnish only). It would be even better to include presentation videos there (perhaps that will be done). I hope more organizers would do something like this as it's usually quite a chore to hunt down the slides.

Thoughts on Talks

Overall the quality of the talks was alright. Some might have felt a bit too commercial for my tastes. I understand that's the cost of the free entry, though. As a technical person I would have loved to see more technical talks. Now the issues were covered on a high level without providing deeper level understanding.

Aspects, such as Twitter automation and bots, would have been fine additions. Topics, such as growth hacking or analytics, would have fit the event nicely as well. But given it was only a one day event, there's only so much you can cover.

Given there were so many talks, I've tried to condense some of the main points I got from them below.

Can information be used to alter behavior? by Vilma Luoma-Aho

There was a message wall that got trolled by
terrorist propaganda bots
  • Information alone isn't enough. You have to be in a receptive mode for this to happen. The information has to be packaged in the right format and fit the pattern. Perhaps the core point here is that you need to understand your target audience well.
  • A lot of default filters can be bypassed by going through emotion. Incidentally this is something that internet trolls and disinformation factories rely upon.

How to Make Sure Your Audience Finds Your Content Interesting? by Sanna Jokiniitty

A conference without a Venn isn't a real conference
  • A community manager is somewhere between of the community, marketing, and business. The goal is to align all these.
  • The clients get influenced from many directions. Your influence is just a small part of that all.
  • Understanding this process can lead to a better understanding of topics to cover. Just having content isn't enough. It has to be timely and interesting.
  • Content ideas can be gained through analytics, client feedback, and simply by following the ongoing conversation.

Content-DJ by Janne Gylling

Obligatory sponsor slide
  • A good DJ has focus on three things: artists, record collection, and dance floor. The idea of this split is that you need those guys that produce the content, the content itself, and you need to know your audience so you know what to play and when.
  • Each of these three has demands of its own. Artists needs understanding, equipment, time, examples, audience, and feedback. These guys will fill the record collection, but in order to do that they will need training and they need to be committed. I think the point here is that if you aren't an artist to begin with, it can be tough to become one. Any of this doesn't matter if you don't know your audience.
  • You have to be able to play your records at the right volume. It's fine to play the same record many times. You just have to be a little careful not to crank it up too loud or else your audience might end up getting a tinnitus and leave you behind.
  • In order to stay in the game, a good DJ should be able to follow the trends as you probably want to produce as many hits as possible. Analytics can help. Taking your artists to a tour can be beneficial as well. Reward success and connect your artists with wider audience.
I liked this presentation as it gave a good analogy for content related work. The analogy works well for larger organizations where you want to get the people involved in content production. But the same ideas are valid even if you work alone.

Community Managers at the Crux of Organizational Development by Liinamaria Hakola

This talk was about Liideri, a goverment driven program that helps companies to help renew their business. The themes of the program are participation, newer ways of working, and leadership. I guess it's nice to have these kind of programs around.

I suppose the question is why aren't the businesses interested in doing this type of work without external funding? Improving operating efficiency leads to better profits after all.

The Power of Visual Communication in Marketing a Brick and Mortar Store by Viivi Heinänen

Buns. Me like.
Even if you happen to have a tiny brick and mortar store middle of nowhere, it can still be fun to get noticed. This is what the talk was about. Harjun Paperi, a local paper product shop, has managed to do this somewhat effectively.

The strange thing is that they don't actually have a web shop at all. You literally have to visit the shop in order to buy something. This doesn't seem to be a problem, though.

The goal of their marketing is to create a positive outlook for their company. I got the feeling they know their target market well. I'm not that interested in Facebook or Instagram myself, but it seems like it's working out for them. Given they sell paper products, this works well with marketing that has its focus on visuals. Just increasing sales isn't their only goal, they want to make their followers feel good.

They've managed to activate their following by encouraging them to share pictures of the products at their home. In addition, they've run competitions where this theme seems to be prevalent. A good example of this is a "taping competition" where you were supposed to make something fun by taping, then take a picture of that, and finally share it under a certain hashtag.

I think by not branching into web fully, they might be missing out on some business. But this may be a conscious choice. Maybe not providing a web shop is a way to make the business more personal as you are actually forced to visit their shop to buy something.

Thousand and One YouTubes by Sanna Rousi

Especially millennials have picked up YouTube. In Finland YouTube is more popular amongst young people than traditional TV channels. The older generations rely on older mediums still and don't understand what the buzz is amount, but apparently this is changing as people get older.

If you are targeting younger people, running a right kind of campaign through YouTube can be highly effective. This is particularly true if you can tie it to some already popular figures by getting them on your campaign.

Traditional marketing approaches don't work on YouTube. You have to be more subtle and go through meaningful content. The brand can exist there, but that's not the main point.

Engaging Staff in Content Production by Merja Heinonen

The red cap caught my eye
A local energy company known as Jyväskylän Energia decided to improve its social media outlook in 2014. Before that they ran it in a rather ad hoc manner. That's not good for business.

They started by introducing Yammer to their organization. It's a tool that is useful for internal communication. I don't have any personal experience with it, but it sounds like a sane starting point. Before you can even begin to organize any bigger effort, you need some communication channel to reach the people.

This development lead to the development of a social media strategy and guidelines. Through small steps and with some collaboration with the local universities, they've managed to establish a proper presence at the social media. As a part of their efforts, they've managed to crystallize their brand promises. It's not possible to guide marketing efforts properly without this type of work after all.

They still have a lot of work ahead of them as they need to learn to measure the effectiveness of their efforts, figure out how to reach their target market better, and improve the collaboration between marketing and sales for instance. But overall, it seems like making a conscious decision to establish a proper social media presence worked well for them.

As a Employee Ambassador at the University by Janne Simonen

Yammer and Skype. Booyah.
At least in my experience one of the biggest problems of Finnish universities is that they consist of small cells, silos, that are separate to each other. There's a lot of potential in the organizations through sheer size alone, but they lose a lot of it through rigid structures that don't promote collaboration. Janne's talk was exactly about this.

Marketing isn't just something that's done from an organization towards outside. It's something that can happen within it. Especially in the case of an organization like an university, it could be beneficial if the others knew what you were up to. This is why Janne has been running Yammer in various organizations.

For this to work, it is highly important to get leadership involved as that increases transparency and makes it worth for employees to use the system as well. Janne achieved this by performing queries on employees to prove the need for more effective communication. You need that leadership buy-in to push something like this forward.

For an individual researcher, marketing can make a huge difference in terms of opportunities. Given that a lot of university research is funded through public, it also makes sense to make it accessible. The results belong to everyone.

Welfare from Work by Minna Janhonen

A lot of the slides were blue. Coincidence?
According to Minna employee ambassadorship can replace marketing. Rather than having a dedicated marketing department, the role can be more embedded to an organization. I guess this can be true up to an extent. You may still want a marketing specialist around, but it's true everyone might have something to contribute.

As shown by earlier talks, developing proper communication channels and enabling employees to participate in content production can be beneficial to an organization.

Leadership in Social Intranet by Jussi Sivonen

Blue again!
The core points of Jussi's talk were close to earlier talks. If you cannot get the leadership involved, it's hard to get buy-in from others no matter how fancy technology you might use in your intranet. This goes back to the silo idea. The first step towards dismantling the silos is to build connections.

This leads to visibility that helps in developing trust towards the organization. No doubt this helps with employee engagement and motivation as it changes the situation towards something more equal.

As a Leader in Social Media by Juha Harju

Green!
Juha made a few interesting points:
  • Leadership is essentially about interaction.
  • When in growth mode, it's hard to manage the growth. The best you can do is to enable it. This is where communication comes in.
  • Social media helps you to communicate values of your company.
  • You can choose in which mediums you participate.

DigiSyke - Digital Heartbeat to Industry by Timo Rainio and Jari Jussila

DigiSyke is a scheme which helps the industry to become more digital. It joins various government sponsored organizations and allows them to help modernize Finnish industry. This is done through training and collaboration. The main goal is to improve productivity and employee satisfaction.

So far the progress on the field has been somewhat tool oriented. Even though tools help, it's not enough. You will need to get them to use. This reminds me of Jussi's talk and the importance of leadership buy-in.

Given the Finnish economy is going through somewhat rough times at the moment, modernization efforts like this are valuable. At worst we'll lose our market positions even further. If we manage to improve, however, there might be something to gain. We can either set the trends or try to follow them. Even though I hope for the former, I remain skeptical.

Case Outward Bound Finland by Jaana Nyström

Jaana's talk was one of the more practical ones. She went through a variety of tools she uses to manage her client cases. There were plenty of familiar ones there, such as Buffer or TweetDeck.

Personally I expected she might rely on even more automation. You can automate Twitter content discovery and follower management after all. Not everything can be automated, but a surprisingly large part can.

Case: Community Management with Sitra and Sasky - How to Encourage and Manage a Community at the Same Time? by Pauliina Mäkelä

Pauliina's talk focused mainly on Facebook Groups. Even though they are apparently fairly easy to set up, there are still aspects you should be careful about. Pauliina suggested setting up a separate group for admins. You might need to manage the group after all. The admin group is perfect for that.

Besides that, it's important to put time and effort in figuring out proper descriptions for the groups, deal with members (accepting, sharing content), and measuring progress (growth). Group size can be used as a part of marketing efforts. Larger groups tend to attract even more people to join. This is just the way networks effects work.

It can be beneficial to develop an onboarding process. Sometimes this may take some physical work depending on your target market. Running a workshop is one way to get more people to join, especially if they are newbies.

Explain with Graphics by Lari Kemiläinen

Infographics is one of those things that a lot of people tend to get consistently wrong. At best they can make hard to understand aspects easier to understand. At worst they mislead. Sometimes that can be purposeful and twisted to suit some specific viewpoint. You might have seen diagrams like that.

Lari made an interesting point about mindmaps. The default form we all know isn't memorable. If we drew mindmaps literally as maps instead of trees, we could benefit from spatial memory. We have a tendency to remember locations well after all.

The great thing about crafting infographics is that they force you to understand your subject matter well. I would say this applies to any teaching. You simply can't explain it, if you don't understand what you are doing.

Infographics allow us to be flexible when needed. According to Lari, good infographics should be clickable, shareable, truthful, and contain attribution (source). You will want to keep them simple enough while being provocative enough so that people actually click them. Simplicity is important because that encourages sharing.

Lari linked to Information is beautiful. It's a site filled with good examples to study. For me Lari's presentation was one of the highlights and I could have easily listened for another 15 minutes or more about the topic.

How to Build a Community on Snapchat? by Ville Kormilainen

Snapchat is one of those services I have never used. And I don't have much incentive to do so. Still, it was interesting to hear how to grow a little community there. Ville Kormilainen did so through absurdity.

As it happens, teens find absurd images funny. That helped Ville to amass a big following through some support from big names. Getting the content right and exposure for that worked well for Ville. This is something that applies to these platforms in general I think.

Conclusion

You can find illustrated notes (Finnish only) at Linda Saukko-Rauta's blog (three parts)
Overall CMADFI was definitely worth visiting. I picked up a couple of tips and tricks here and there. I will have to rethink a few things in the future and the conference contributed to that quite well.

As with free conferences often, there were quite a few "no-shows". It's possible to solve this problem through a tiered registration (you have to confirm or you lose your spot) or by implementing a fee for not showing up. I would be happy with both. I could easily pay a bit of money to participate even. I wouldn't mind if an event like this lasted for 2-3 days and had some workshops in it.

I liked the format of 15 minute talks. That forces people to simplify and you get exposed to a lot of topics in a short period of time. I might have cut two talks from the program and implemented a panel discussion instead. That would have given a better chance to participate than the current setup. But overall it worked quite nicely.

Saturday, January 23, 2016

Ask Me Anything about Webpack and React

Do you have a Webpack or React related question in mind you would like me to answer? Now is your chance to get it done! Head to my AMA and I'll write you back.

If those words didn't make any sense, read my book and get back here after that.

Wednesday, January 6, 2016

Stamplay Ripped Off My Work (resolved!)

As Picasso said "Good artists copy, great artists steal.". A company known as Stamplay decided do the latter. You can guess I was surprised to see a blog post heavily derived based on my content at their blog. Personally I don't mind remixing, but if you do this sort of thing, at least an attribution would be nice.

On other news, there's a new version of the Webpack and React book out now. Getting close to 2.0!

Update: After going through the situation, Stamplay decided to add an attribution. Sometimes it can go this way it seems. They didn't copy the content on purpose. In the end it was just a misunderstanding.

Friday, January 1, 2016

Reflecting on 2015

You could say 2015 was a good year, even if it wasn't an easy one. Career-wise I made a huge change of direction. Earlier I had relied on random freelancing gigs. To be honest, I wasn't never particularly great at that. The rates are quite poor and the income is not that stable.

I realized this wasn't something that could work over longer term. As a result, an effort known as SurviveJS was born. That's what kept me busy during 2015. I hope 2016 will be another SurviveJS year.

SurviveJS - What's It About?

My first book!
You could say the seeds of SurviveJS were planted when I happened to comment on a blog post by Christian Alfoni. He had written about Webpack, and commented on the situation (lack of docs). At the time the tool, even though valuable, was really hard to approach. To change the situation, we wrote the first version of the Webpack/React cookbook. It's an effort that became quite popular.

This initial success made me realize there might be room for something commercial. I decided to poke an old publisher acquaintance of mine. We tried proposing a book related to the topic, but failed to get the deal. Christian got busy with some work of his own. Regardless, I decided to carry on. I chose Leanpub as my intermediate given I didn't want to deal with the complexity of sales myself (VAT MOSS and all that).

Suffice to say, this process led to an interesting book about Webpack and React. It's an ongoing effort. At the moment this is something that sustains itself financially allowing me to focus on the effort. This is a very good situation for everyone involved.

If you had told me a year ago I would have sold almost thousand books by the end of 2015, I wouldn't have believed you. The book was the #1 selling book for the last week of 2015 at Leanpub. It was also a part of the React Indie Bundle. The bundle was a success as well.

As I don't want to bore you with exact details, consider checking out my recap of the year 2015 of SurviveJS. You'll find more specific information there.

Personal Development

Winter fog
I think this was a good year in terms of personal development. Besides beginning to understand publishing business a little better, I picked up photography (Fuji X100S is great!), improved my artistic skills, and even improved my technical skills. Having to think deeply about something forces you to actually understand what you are doing and why.

I developed a couple of semi-interesting libraries/tools during 2015. I've listed some notable ones below:
  • Reactabular is a powerful table abstraction for React. I pushed a lot of problems to user space, but it seems to work quite fine regardless.
  • react-pagify is a paginator for React. This grew out of Reactabular, but isn't coupled with it in any way. I probably need to rethink the API and make the demo page nicer. The functionality is there, though.
  • react-ghfork is an easy GitHub fork component for React. Not much to add.
  • react-ellipsify is a neat ellipsis component for React. It's not particularly popular, but I achieved what I wanted to technically speaking. The API is nice and it can ellipsify any content. This might come in handy later.
  • Antwar is a Webpack and React based static site engine I developed with Andreas Eldh. It's still a little rough at places. I hope to get a solid version out there early 2016. It's just something I develop based on my own needs and it's not even meant for large scale usage. Nevertheless, there might be a thing or two to learn from the implementation.
  • webpack-merge was developed to address an issue showcased by my book development. I needed simple means to organize Webpack configuration. A simple variant of a standard recursive merge seemed to fit the problem. The library has grown since to make it even more suitable for organizing complex configuration and as a result it fills a small niche in the ecosystem.
Overall, it was a good year and I progressed in many areas. A lot of these projects will likely go further during 2016.

Presentations

I gave a couple of presentations during the year. I know I should do more, but my geographical location doesn't really help with that. If I want to present, I have to spend a day or two traveling, not to mention that this tends to be expensive. I've listed my presentation slides of 2015 below (works best in Chrome):
Maybe I'll do more in 2016, but this depends on luck and demand. I tend send some proposals every once in a while, but it's quite competitive these days with that.

Events

Winter Sun
In addition to being a talking head, I participated events as listed in my travel reports below:
I want to give special thanks to Prospect One and jsDelivr for helping to sponsor the OSCON trip. If you need graphics or web performance work done, consider them. Thanks Dmitriy!

It's fun to visit events every once in a while. They force you to get out of your shell a bit, and at least it breaks the monotony of daily grind somewhat. Sometimes spending a few days abroad is all you need. It gives you perspective and energy to push further.

Conclusion

It feels like 2015 was a good year. It definitely wasn't an easy one, but at least I have a certain direction now. Especially SurviveJS is something I can, and will, push further. The best thing about the situation is that it allows me to contribute to the community while doing something I enjoy.

I am fairly confident about 2016. 2015 put me on the right track and took some weight from my shoulders. Now I just have to make most of the momentum. Interesting times.

Sunday, December 27, 2015

Linkdump 26 - Business, Personal Development, Software Development, Hardware...

It has been a while since the previous linkdump. Time for a new one.

Business

Startups

Finland

Personal Development

Software Development

Tools

Opinions

Techniques

Tutorials

Web Development

90s

Techniques

Tools

Libraries

CSS Techniques

CSS Components

React.js

UX

Techniques

Forms

UI

Conversion Optimization

Hardware

Photography

Art

Comics