-
Notifications
You must be signed in to change notification settings - Fork 0
/
atom.xml
260 lines (172 loc) · 21.5 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[Stefan Adamov on ze web]]></title>
<link href="http://sadamov.com/atom.xml" rel="self"/>
<link href="http://sadamov.com/"/>
<updated>2014-08-23T13:25:26+03:00</updated>
<id>http://sadamov.com/</id>
<author>
<name><![CDATA[Stefan Adamov]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[Notes from RailsConf 2014 @ Chicago]]></title>
<link href="http://sadamov.com/blog/2014/05/22/notes-from-railsconf-2014-at-chicago/"/>
<updated>2014-05-22T19:45:00+03:00</updated>
<id>http://sadamov.com/blog/2014/05/22/notes-from-railsconf-2014-at-chicago</id>
<content type="html"><![CDATA[<p>A month ago I had the chance to go to RailsConf 2014 in Chicago, thanks to <a href="http://housetrip.com">HouseTrip</a>. All I can say is that it was a truly awesome experience. I was able to see some of the giants in the Rails community live and even chat with them (even just for a <a href="http://f.cl.ly/items/1Q3q151C3T3f2T1J0o0k/Screen%20Shot%202014-08-22%20at%207.55.25%20PM.png">Gorbypuff sticker</a>
)).</p>
<p>Anyway, long story short - I managed to jot down some notes about the talks. You can see them <a href="https://github.com/adamof/railsconf_2014">here</a>. This repository also includes notes from my colleague <a href="https://github.com/pedrocunha">Pedro</a>.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Working remotely. The good, the bad and you]]></title>
<link href="http://sadamov.com/blog/2013/03/17/working-remotely-the-good/"/>
<updated>2013-03-17T11:55:00+02:00</updated>
<id>http://sadamov.com/blog/2013/03/17/working-remotely-the-good</id>
<content type="html"><![CDATA[<blockquote><p>Don’t you just wish you could work from home in your pajamas?</p></blockquote>
<p>I will try to describe what telecommuting is about and what pros and cons it has. While I certainly think that remote working is a great option, some precaution must be taken to make sure that the employee is experienced enough to actually benefit from it. Furthermore, success depends equally on the employee, the management and the tools used. I will also share a bit of my humble experience in the area of remote work to try and compare the in-office environment to a remote one.</p>
<h3>Background</h3>
<h4>What is telecommuting?</h4>
<p>Telecommuting is a type of work arrangement between an employer and an employee that allows the employee to work from outside the office. Often the preferred location for working is the home, but in recent times, the coffee shops and <a href="http://en.wikipedia.org/wiki/Coworking">co-working spaces</a> tend to attract the nowadays ‘nomads’. There are a lot of flavors to the word “telecommuting”. In this article I will discuss particularly the professionals developing software from a remote location, at least three days a week. It is not rare that whole teams are spread throughout the globe, which was the case with my first job.</p>
<h4>Who does it?</h4>
<p>I do it and my favorite <a href="http://github.com">Github</a> does it! Only a <a href="https://twitter.com/holman/status/312958138494103553">third</a> of their staff is at the San Francisco headquarters. According to statistics from the <a href="http://www.bls.gov/bls/proghome.htm#employment">US Bureau of Labour</a> for 2011, there are about 3 million people in the US who telecommute at least three days a week.</p>
<h3>The good</h3>
<p>Pros of telecommuting in personal aspect and in organisational aspect.</p>
<p><strong>Personal</strong></p>
<ul>
<li><strong>no commuting</strong> - no more worrying about the rush hours</li>
<li><strong>flexible hours</strong> - Not a morning person? That’s fine, you can work in the evenings.</li>
<li><strong>work/life balance</strong> - this one can be tricky, but in general it is up to you how much you work</li>
<li><strong>comfort</strong> - you are at home in your PJs and slippers</li>
<li><strong>productivity</strong> - no need for office smalltalk, and you are on your own chords</li>
<li><strong>can work on an exciting project</strong> - you can get to work on a project that is bleeding edge no matter where you’re based</li>
<li><strong>home costs</strong> - you can work from the province and enjoy the fresh air, while working on that Big Data crunching project</li>
</ul>
<p><strong>Organisational</strong></p>
<ul>
<li><strong>lower office costs</strong> - the business headquarters can be smaller, since they don’t have to accommodate that many people on a day-to-day basis.</li>
<li>Companies are able to find and secure talent worldwide rather than limiting themselves to what is available locally.</li>
<li>Staff can be compensated at rates that are appropriate for their location rather than what is required at the company headquarters.</li>
</ul>
<h3>The bad</h3>
<p>Cons of telecommuting in personal aspect and in organisational aspect.</p>
<p><strong>Personal</strong></p>
<ul>
<li><strong>discipline</strong> - you have to take work seriously, which is hard without having a forced working hours</li>
<li><strong>work/life balance</strong> - it is easy to become a workaholic, if you <em>really</em> love what you do</li>
<li><strong>isolation</strong> - remote work takes it’s toll even on introverts, you are home or somewhere else and the casual chats with co-workers are not as easy</li>
<li><strong>distractions</strong> - the office distractions are replaced with home chores and family distractions</li>
<li><strong>communication</strong> - you are missing out on the casual hallway chats, when some decisions are made</li>
</ul>
<p><strong>Organisational</strong></p>
<ul>
<li>Management must embrace a management by requirements and deadlines style rather than by walking around and seeing staff work.</li>
<li>Management must be willing to go to the effort to routinely reach out to remote employees to understand what they are doing and if there are problems that need to be addressed.</li>
<li>Management must be willing to use audio and video conferencing as well as instant messaging and Email to keep connected with remote staff. This also means that the company’s collaborative application licensing, processing and storage costs might be higher.</li>
<li>Networking and network security costs can be higher.</li>
</ul>
<h3>And you</h3>
<p>Well I don’t know about you, but I can tell you a bit about my experience and what I’ve been told by more senior engineers with remote development experience. Keep in mind that these are my personal opinions and conclusions drawn from my own experience. I believe that only senior developers can really benefit from a remote working environment. Here I will discuss how remote development feels in different levels of expertise.</p>
<h4>Junior positions</h4>
<p>My first real software engineering job was a <strong>remote</strong> one and all the communication was conducted through email, skype and chats. It was the first time I was working with a specific web development framework and I had a lot of questions about the platform and the good practices and even though my managers were pretty good with responding in time, I was still baffled most of the time. I had to do a lot of reading on my own and I was never sure I am doing the right thing.</p>
<p>To compare that to an <strong>office</strong> environment I will give an example about my next job at another company doing web development as well. I was amazed how much more you learn at the office. Every day I went to work I was excited about it, because I would learn a few mind-blowing tricks that day. My mentor was within arm reach and he’d be happy to explain.</p>
<h4>Not-so-junior positions</h4>
<p>Due to relocation, I started working remotely again after working at the office for about five months. Even though I felt some of the drawbacks like isolation and distraction, this time it was a lot easier, I had experience with the development cycle, I knew the framework and I was confident enough to work on my own. But yet the scales aren’t tilted to the remote work, they are more like balanced, meaning that I wouldn’t consider the option for remote work an important aspect when applying for a job (except for foreign countries, where relocation is a problem).</p>
<h4>Senior positions</h4>
<p>From talking to more senior developers that have done both in-office and remote work and some blogposts I have stumbled upon on the internet, the overall opinion is that telecommuting can be actually more productive than working at the office. For them the great benefit comes from the ability to minimize interruptions and focus on what they are doing. They wouldn’t be interrupted by someone tapping them on the shoulder to ask how to do something. They don’t have to go through the obligatory small-talk with people in the hallways. And lastly, they are experienced enough to be able to carry a task from beginning to end.</p>
<h3>All in all</h3>
<p>Working whenever and wherever you want is great, but with great power comes great responsibility. The main dangers are difficult communication, distractions and isolation, but if the person is experienced and disciplined enough they can be overcome with the help of the management team.</p>
<hr />
<h4><em>References</em></h4>
<p><a href="http://beuno.com.ar/archives/303">http://beuno.com.ar/archives/303</a></p>
<p><a href="http://gigaom.com/2012/03/26/tales-from-the-trenches-github/">http://gigaom.com/2012/03/26/tales-from-the-trenches-github/</a></p>
<p><a href="http://www.teleworkresearchnetwork.com/telecommuting-statistics">http://www.teleworkresearchnetwork.com/telecommuting-statistics</a></p>
<p><a href="http://lanceennen.com/blog/posts/remote-development-to-be-there-or-not-to-be">http://lanceennen.com/blog/posts/remote-development-to-be-there-or-not-to-be</a></p>
<p><a href="http://en.wikipedia.org/wiki/Telecommuting">http://en.wikipedia.org/wiki/Telecommuting</a></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[DVCS and social coding]]></title>
<link href="http://sadamov.com/blog/2013/03/09/dvcs-and-social-coding/"/>
<updated>2013-03-09T12:59:00+02:00</updated>
<id>http://sadamov.com/blog/2013/03/09/dvcs-and-social-coding</id>
<content type="html"><![CDATA[<p>This blog entry should be considered as a supplement to Sebastien Auvray’s <a href="http://www.infoq.com/articles/dvcs-guide">Distributed Version Control Systems: A Not-So-Quick Guide Through</a>. The author concentrates on the technical parameters of the distributed version control systems (DVCS), while this is fine for someone looking to make a decision which implementation to choose, he is missing a major aspect of DVCS- the sociability. I will briefly discuss some sample workflows and discuss how the introduction of DVCS helped Open Source projects, by lowering the entry barrier and making collaboration easier. Some even based their whole business model around socialising coding, like Github</p>
<h2>Centralised vs distributed workflows</h2>
<p>Traditional centralized source control tools suggest hierarchy. Developers work with a single repository containing all of the code, so they organize themselves into trees. In DVCS, branching and merging is made cheap. Developers work with trees and teams can (self-) organize into any graph they want (example given in the dictator and lieutenants workflow).
To prove my point I will be using git examples, as this is the DVCS I am most familiar with. As for the competitors presented in the original blogpost most of the DVCS implementations (bazaar, mercurial and others) are roughly equal in their functionality, but git leads in the number of users. Lets go through several workflows.</p>
<p><strong>Basic</strong>- this is the most basic workflow. It is suitable for small projects, like university group coursework. There is a central(blessed) repository and each of the contributors have their local copy of it. While in their local repository, each of the developers can branch off, commit and merge even without network connection, which is impossible with CVS. When they are done working on their feature they push back to the main repository. There is the detail that before consequent pushes to the repository each of the developers must rebase his/her changes on top of the ones from the previous one. This is easily done in git with the <strong>merge</strong> or <strong>rebase</strong> command.</p>
<p><img src="http://i.imgur.com/sMpXsle.png?1" alt="central" /></p>
<p><strong>Integration manager</strong>- This is another scenario, which is often implemented by open source projects, which have appointed main contributor, who is responsible to review the changes submitted by others, before pushing them to the main repo.</p>
<p><img src="http://i.imgur.com/0HRyc0i.png?1" alt="manager" /></p>
<p><strong>Dictator and lieutenants</strong>- This is just the integration manager workflow with another level of control of the quality. The collaboration between the junior developer in the case below is not obligatory, but just show how much DVCS encourage user communication.</p>
<p><img src="http://i.imgur.com/LoFEVRU.png?1" alt="dictator" /></p>
<h2>What centralised VCS manages with process, distributed VCS let you manage with software.</h2>
<h3>Peer Review With SVN</h3>
<ul>
<li>I pull from master and make my edits.</li>
<li>When I’m done I send patches to my collaborators who read them and argue with me.</li>
<li>If they want to work with my changes:</li>
<li>they pull another copy of master</li>
<li>apply my patches</li>
<li>generate patches of their own</li>
<li>send me these patches</li>
</ul>
<h3>Peer Review With git</h3>
<ul>
<li>I branch off master and make my changes.</li>
<li>I push my branch to a public location and email my collaborators to tell them where.</li>
<li>My collaborators use my URI to make diffs on-the-fly against any branch they like, check out my branch, or make commits back to it.</li>
<li>They still argue with me sometimes of course, but as often they just implement their suggestions in my branch.</li>
</ul>
<h2>DVCS and open source projects</h2>
<p>With the introduction of DVCS and their workflows for development, the barrier to contribution to Open Source Software (OSS) was reduced. Huge projects like Mozilla, Python, KDE, NetBeans, Eclipse, Gnome[1] have moved to DVCS.</p>
<p>Some of the main complaints connected with the centralised systems were[1]:
* “basic tasks such as reverting changes to a previously saved state, creating branches, publishing one’s changes with full revision history, etc.” Also, they mentioned that “there was no place to contain intermediate work”
* that the change will significantly lower the barriers for external contributors and make it easier for their own developers to merge and accept changes that have been created by others and received sufficient community testing</p>
<p>As a result of OSS projects migrating to DVCS the entry barrier was lowered and the number of active and new contributors increased. There is no more the need for core developers to act as gatekeepers for all the code that is submitted to the project. Contribution ownership remains for the actual contributors and debugging applications became easier, since one can see who introduced a certain commit, possibly introducing a bug.
It wasn’t godsend only for the open source projects, some major commercial organizations with giant code bases use it extensively- Facebook, Staples, Verizon, Microsoft and many others. Git is so essential for Google, that they pay the main contributor Junio Hamano and the second-in-command to work on Git full-time.</p>
<h2>The social coding and Github</h2>
<p>Even though contributing technically became easier with the rise of DVCS, the real blessing for the development of Open source came with the websites that socialised coding. A lot of companies tried and succeeded to a certain level, but I believe the gold standard for now is Github.
You know how you open your Facebook every once in a while to check if anything changed. Every time you notice something new that gives you that little hit of dopamine. That is what Github managed to accomplish, but with code, which makes it actually useful. Github is code-sharing service based on git. As well as repository hosting, they provide developers with graphical interface, bug tracking tools, communication forums and Wiki pages. The most noticeable function is the “forking”, which copies a repository from one user’s account to another. This makes contributing to open sources a breeze. Basicly, you can make changes to a code you have read-only permission and later if you want, you can choose to contribute the additional functionality back to the project, by using a pull request, which will merge your changes to the project tree.</p>
<h2>All in all</h2>
<p>One of the major aspect in which DVCS changed the developer game is the social aspect. Moving from the hard-coded one-way hierarchical structure of centralised VCS to the distribution of power among a diaspora of developers brought by DVCS. Systems like git, mercurial and bazaar revolutionised the open source development, by lowering the barrier to entry and democratising open source development. Social coding became the slogan of some of one of the most emblematic developer websites - Github, which brought together the addictiveness of the social networks to something useful- coding</p>
<p><strong><em>References</em></strong></p>
<p>[1] Rodriguez-Bustos, C.; Aponte, J.; , “How Distributed Version Control Systems impact open source software projects,” Mining Software Repositories (MSR), 2012 9th IEEE Working Conference on , vol., no., pp.36-39, 2-3 June 2012</p>
<p><a href="http://www.wired.com/wiredenterprise/2012/02/github/all/">Wired: Lord of the Files: How GitHub Tamed Free Software (And More)</a></p>
<p><a href="http://www.techrepublic.com/blog/opensource/dont-fear-the-fork-how-dvcs-aids-open-source-development/2199">TechRepublic: Don’t fear the fork: How DVCS aids open source development</a></p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[We won a hackathon!]]></title>
<link href="http://sadamov.com/blog/2013/03/08/we-won-a-hackathon/"/>
<updated>2013-03-08T23:40:00+02:00</updated>
<id>http://sadamov.com/blog/2013/03/08/we-won-a-hackathon</id>
<content type="html"><![CDATA[<h3>About team Batkan and our baby - <a href="http://koshov.github.com/SmartData/">Flyscape</a></h3>
<hr />
<p><em>This is my first blog post so please bear with me</em></p>
<p>A bit about the <a href="http://data.inf.ed.ac.uk/ilwhack/">hackathon</a> - it is organised by the School of Informatics at University of Edinburgh as part of the Innovative Learning Week (a week, during which there are not lectures and no assignments, a week that you are supposed to spend learning new stuff and getting industrial experience). The main focus of the hackathon was using open data sets and some of the sponsors(in terms of data) were: <a href="http://skyscanner.net">Skyscanner</a>, The City of Edinburgh Council, OpenInnovation and the School of Informatics itself. The length was a bit longer than the usual- it was a Monday to Friday event, filled with a lot of unhealthy snacks.</p>
<p>It was a really pleasant experience mainly because of my team mates, all of them were driven and smart! We had decided we wanted to use the data provided by Skyscanner about flights and prices, so we came up with the idea about a trip planner with a map that people can use to select location they want to visit (Rome, Paris, London for example) and we also wanted to include some recommendations about weather and music festivals. Our system would then find the cheapest way to visit all of the destinations and fly back to the origin. This was about flying cheap so we decided we are going to throw <a href="http://en.wikipedia.org/wiki/CouchSurfing">couchsurfing</a> hosts in the package.</p>
<p>During the hackathon we worked really well and everyone had a well-defined task:</p>
<ul>
<li>Yordan - the algorithm to find the cheapest route</li>
<li>Stefan Subev - worked on fetching the flights from the Skyscanner API</li>
<li>Georgi - worked on the identity and design of the web app</li>
<li>Nikolay - worked on the scrapers that gathered information about couchsurfing locations, music festivals and weather data</li>
<li>me - I was gluing things together with Django and helping other people (most of the time that was the Mac guys, cause they had problems with the Postgres setup)</li>
</ul>
<p>This is what came out:</p>
<iframe width="420" height="315" src="http://www.youtube.com/embed/7ir7XrlC0aw" frameborder="0" allowfullscreen></iframe>
<p>We ended up winning in the “Travel and Leisure” category and we were given some neat prizes by Skyscanner.</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[Hello world]]></title>
<link href="http://sadamov.com/blog/2013/03/07/hello-world/"/>
<updated>2013-03-07T23:26:00+02:00</updated>
<id>http://sadamov.com/blog/2013/03/07/hello-world</id>
<content type="html"><![CDATA[<p>Hi there, I will be posting some interesting stuff that are happening to me. I am trying to keep a blog with the hope that it will push me to think about the things I am doing instead of just going with the flow.
Also I am taking the opportunity to establish some minimal web presence, since I am supposed to be a web developer and it’s a good idea to have a web site as such.</p>
]]></content>
</entry>
</feed>