As for sponsoring other products/companies - we'd need to see if it's aligned with our goals and with our target group. I don't remember anyone approaching us so far.
642 karma · joined February 11, 2011
blog: http://andrzejkrzywda.com
As for sponsoring other products/companies - we'd need to see if it's aligned with our goals and with our target group. I don't remember anyone approaching us so far.
https://github.com/arkency/reactjs_koans
Thanks to this solution we've had more money to work on this and other OSS projects.
Different rules apply in async standups than in meeting-like standups. There's more focus on what your daily status can bring to other people.
I wrote about some tips here: http://andrzejonsoftware.blogspot.com/2014/05/async-standups...
As for Leanpub:
1. Last time I checked, they didn't let me take the customer emails and use outside of Leanpub. I find it a very important limitation to the way I do the marketing - via my mailing list. In practice, my readers are more Leanpub customers, not mine. I want to build long-term relationship with my readers, to deliver more value to them, even after they bought my book. To be fair - Leanpub has their own tool for sending emails, I haven't tried that. I'm happy enough with MailChimp, not to see reasons to switch.
2. From the tools I researched, Leanpub is the best when it comes to PDF/mobi/epub generation. It takes a while to learn their process but it was worth it.
3. I'm really grateful that Leanpub allows the process I'm doing - generate the files using their tools, but selling on another site.
Overall, the tools you're choosing should fit your whole process of researching, writing, marketing, selling.
Some thoughts:
1. Code examples are the biggest problem to me in the tools that I tried. There's many little things about them, that need to look right - line numbers, display on kindle, line breaks
2. At the beginning, I've used Git and vim for writing in Markdown. However, at some point I realised that I wasn't efficient - I switched to Scrivener [2] and dropped the idea of using Git. In my case, it made me much more productive.
3. Writing an ebook is different than writing code. You probably don't need much of the history.
4. Research is for me the biggest part of writing, experimenting with different ideas, collecting code samples. It's good to have a proper tool to support it. In my case, Scrivener [2] was a huge improvement.
5. I use a combination of Scrivener, Leanpub, Dropbox and getdpd [3] for the whole project. Scrivener for research and notes organisation, Leanpub for generating the result files (PDF, mobi, epub), Dropbox for syncing those two. Getdpd for the selling part.
[1] http://rails-refactoring.com/
http://blog.arkency.com/2014/02/rails-refactoring-the-aha-mo...
http://skillsmatter.com/expert-profile/open-source-dot-net/g...
It's a peopleware problem, more than a technical one. If there's no trust in the whole team, then all the design/architecture challenges are less important.
I've just read it today, a good post on this topic:
"We all know Conway’s law: “any piece of software reflects the organisational structure that produced it.”. In the same way, communications patterns between people affects the quality of the software. After 6 months working on a greenfield project I realised I could link all the areas with major technical debt to some unsolved personal conflicts in the team."
http://bitlyfied.com/2013/12/19/happiness-and-other-technica...
The ideas behind those architectures require time to think through. The sooner you start, the better. Then, slowly, try adopting them. If you have a side project, then apply it over there.
It's crucially important to have a common understanding of the project within a team. The domain knowledge should come from the subject matter experts, but after that it should be a team work to decide which (if any) patterns and architecture should be applied.
If Carslen wins, this will be a generation change in the chess world.
Given the popularity of chess in Asia, it is estimated that about a billion of people are following this match[1].
[1] http://www.gq-magazine.co.uk/comment/articles/2013-11/14/mag...
I've seen so many of such bugs in other apps, that I treat them as part of "ActiveRecord price".
ActiveRecord over-usage makes it very easy to miss the places, where queries need to respect new rules.
You're doing an awesome job with Discourse and the team approach to such bugs is very good - no doubts here. Thanks for your work!
Discourse 'private topics' leaks (1) are good examples of typical security Rails apps bugs (the result of overusing ActiveRecord). I'm not blaming Discourse, the same kind of bugs appear in other popular Rails codebases (Diaspora, Spree, Redmine).
Ember.js is very Rails-like. I didn't use Ember much, but the patterns look so similar, that it may lead to similar kind of problems as in Rails apps.
I'm not saying that we shouldn't use Rails or Ember. In fact, I'm a big fan of Rails. It's just worth being careful of not falling into the trap of overusing the framework patterns.
The frameworks are best for the infrastructure parts of the app - http, persistence. At the end, it's better that you can control your models. That's the part of Angular that I prefer over Ember - you own your Model part.
(1) http://meta.discourse.org/t/digest-mail-ignores-secure-group... http://meta.discourse.org/t/non-authenticated-users-see-priv...
There's nothing like that.
All of the JavaScript frameworks are in their infancy. It doesn't mean we can't use them yet. It's just that they are not mature enough to be easy to use.
Is anyone aware of tools that let me do the code reviews of the whole code base in a simple way? I don't want to focus on the commits/pull-requests in this case.
Sometimes it's better to hire a younger, less experienced developer, who's not aware yet, that "specialisation is good". Thanks to that you can have one dev who's able to finish the whole project. Obviously it's only true for smaller projects.
Usually, I'm avoiding this kind of situations. It can be terrible to debug.
In our teams, we have a rule that the calls to Before/After/Around can only happen in the Glue code.
Obviously, we also make sure that everyone involved is familiar with AOP and knows what is the architecture.
As for the use cases for AOP, I know it's not a common practice to use it. Orthogonal concerns are the best fits, but not the only ones.
There was an interesting research project at IBM, called Hyper/J. It was a little bit of inspiration for the AOP usage in the hexagonal.js architecture.
Here is a good paper on Hyper/J (and the idea of Multi-Dimensional Separation of Concerns)
http://helios.mm.di.uoa.gr/~anya/pms521_papers/p734-ossher.p...
Thanks for your comment, it was very valuable.
As code modules, those two things are separated. The usecase doesn't need to know about the gui and vice versa.
In theory, they can even be reusable.
We combine those two things in the glue code. Thanks to the glue code, it's the usecase which drives the other things. The usecase makes sense even without thinking about a specific GUI solution.
I'm not sure where we could put the second piece of code you mention. Any suggestion?
What would you suggest to bundle into this library?
There's nothing that makes this approach impossible to use with JS. The code samples are Coffee, because that's what we write our production apps in.
Yes, it seems that hexagonal.js uses the third approach - a metadata file.
I'm one of the people behind hexagonal.js. Raganwald's work enabled us to implement one of the main components - the glue code.
Can you explain it in more detail? Are you returning different results to Google bots?
It's not as much pain as you would think, it's enough to just return some html. No css/js is needed.
Still, that's some additional work.
Rendering html on the backend was the only option for years, as the clients didn't have the computation power. Now, we're getting to the point, where rendering client-side becomes possible.
We're not rendering html client-side for fun. It makes the UI more responsive, while keeping the overall architecture more simple. There's a cleaner separation between the client and the server.
We can (and we do) have separate teams working on client/server. It wasn't that easy before.
I'm 33, if that makes my comment more legit ;)
You can do what Twitter did. Allow some duplication and render html server-side on the first request.
It starts with saying "well, let's just render html on the client-side instead of on the backend". Suddenly you're in a new world of programming.