1. 2

    In my workplace I am the only programmer. When somebody mentally categorises me as an “IT guy”, I’m not outright offended, but I do accept that this person has no idea about what my role is, what my skill-set is, or that there is more than one job description in the “IT” industry. This isn’t too bad - after all I tend to lump them all in the “academics” group. (So you lecture or research or deal with accrediation or something… I don’t know and don’t really care, sorry).

    However the thing I do find frustrating, more than offensive, is that these people almost inevitable then come to me for help with their “IT” issues. Everything from connecting their blackberry to the wifi, how to cut and paste in Word, asking if I know where the spare toner is for their photocopier, and more. Those are all real examples from this year, and there’s only a handful of people in the office.

    The worst part isn’t that the work is “below me” or some such, it is that it’s an interruption. If you have a difficult problem to solve, you may need to spend hours understanding all the relevant moving parts, and assembling an accurate mental model so that you can reason about what is going on and how to approach the problem. At this point you desperately need to focus before you lose it. It’s hard to be polite to someone who interrupts this to ask about some IT issue that is not your job description at all, but hey, you work in IT, right?

      1. 3

        If I’m on my phone, I want to use a native mobile app, everytime. I don’t mind too much if it contains a web frame for some of the content. But I’ll be damned if I wait 5-10 seconds for the main page/screen to load - in that case I’ll just uninstall it. On the other hand, its a thing of beauty when I can browse the content even offline. (Thanks twitter!)

        1. 2

          Do you mean a webpage that looks like a mobile app or an actual native mobile app? Also, would you suggest making a specific layout for mobile or would you suggest making judicious use of display: none; to remove unimportant elements and decrease page load time?

          1. 2

            I mean I want to use an actual native mobile app. Its ok if that app uses webview for somethings - but the main content should load fast through an API, and cache locally so I can browse instantly, even offline.

            Mobile enabled websites are ok if nothing else is available, but given the choice, I’ll take a native app. The numbers suggest other people feel the same way.

            1. 1

              Ah, ok, understood. Do you feel this way about all sites, or just certain types of sites like news sites, online stores, and social networks?

              1. 2

                I definitely do browse regular websites, but mostly on my desktop. If I’m going to visit your site from my phone, I want an app. Maybe what I want is a good RSS reader for my phone? I’ve never found one that I liked, but its been a while since I looked.

                1. 2

                  If a website is designed “well” for mobile, i.e. it caches data for offline use, loads things only when needed, do you still want an app anyway?

                  I realize that, like you, many prefer native apps. But, I wonder whether this is just a reaction from past evidence based on the fact that most websites are not designed to be mobile friendly, even though it is typically technically feasible to do so.

                  One sad thing for the mobile web is that many seem to feel much better about websites when they are able to pin them to the home screen (like with a native app), but unfortunately the UX flow to do so usually has many more hoops than you see for installing an app.

                  1. 2

                    Yup, HTML5 lets you build webstuff with local cache, so that’s an a option. Definitely part of my dislike of mobile web is the UX flow to pin an website sucks. But also, I hate writing apps in javascript, and Its harder (for me anyway) to make a really tight responsive app in html vs objc/java

                  2. 2

                    I’m the opposite - especially for a site I just want to use once or twice or try out first. If the coffee-shop across the road has either a mobile app or a website where I can pre-order my coffee, I’m going to give the site a go, I’m not likely to search the app store and go through that process. I only want to add the app once I’m already addicted and know I’ll use it regularly. “Close Tab” is easier than “Uninstall”, and I feel the install process is easier also.

          1. 10

            It’s always fun to read an article about a predominantly science/engineering community from an arts perspective… My thoughts:

            • I think open source projects moving from a “hacker’s spare time” projects to a “collaboration between varied businesses (and maybe individuals)” will be a win-win for everyone. It seems most small businesses that do use open source don’t contribute back significantly - they see the major benefit as the lack of license fees, and so investing in ongoing development doesn’t make sense to them. If instead they viewed it as a way of not getting screwed with platform lock-in, reducing duplication of effort, etc, then maybe they’d see the advantage is still there even if you end up paying similar fees (to invest in development, rather than pay a license fee). The increased investment might see some of the software reach a level of polish good enough to really take off.

            • I would usually say the meritocracy system sounded okay, but the article is right: if we were honest about that we’d see a lot more diversity. The same thing is happening with the Australian government, which has only one women in the 18 person cabinet of ministers, apparently decided on “merit”. When you see a cultural homogeneity like that you can usually assume things aren’t purely “merit”. The selection bias of start-ups hiring those who have enough enough free time to volunteer on open source probably accounts for much of the mono-culture I’ve seen.

            • The quote from Eric S Raymond is particularly off-putting. I’ve gone through these times and the result has always been horrendous, unmaintainable code. Not to mention the negative effects on my health. In fact, the entire “hacker alone with his code” tends to lead to ugly code - it’s when I’m forced to share my work with others and be social that all of a sudden I start thinking much more carefully about design, readability, maintainability etc. I would not wish this rite of passage on any new member of the community.

            Is anyone on this board from one of the minority demographics? I’d love to hear some people share their experiences.

            1. 2

              Wow, thanks for the thoughtful reply! Your point about business investment is a great one!

              1. 2

                Thanks for writing the article. I found it very thought provoking, even personally challenging. It’s probably one I’ll come back to and re-read from time to time…

            1. 19

              Building a photo booth for my wedding next month! Raspberry Pi, DSLR camera, python and Flask.

              1. 4

                Are you going to be publishing the source anywhere? It occurs to me that I have both a Raspberry Pi and a DSLR I’m not using, would be fun to setup a semi-permanent photo booth at my house. :D

                Also, congratulations in advance!

                1. 2

                  Yes, good luck with the project and your photo booth too! :)

                  1. 1

                    That sounds fun! Good luck with all the less nerdy details and I hope you enjoy the big day :)

                    1. 1

                      Good luck with the project! We had a (rented) photo booth at our wedding, and it was a huge it. Many months later, we still enjoy going over the pictures.

                    1. 3

                      This week I begin my first week at the Founder Institute in Perth. I’m building an app so that makes sure parents know what their kids are up to at school, and can ask better questions than “what did you do at school” (and receive better answers than “nothing”). We don’t have a full start-up accelerator in Perth yet, so FI is the next best thing and I’m excited to jump into it.

                      In my spare time I’m working on a Haxe plugin for Brackets (provides compiler based code-hints, jump to type definition, compile on save). Hopefully get it to a usable state, because it’s not there yet.

                      Also working on a re-factor and documentation sprint of one of my open source libraries called Detox. It’s a library that does two things: it uses static extension to provide a jQuery like interface for navigating the DOM without having to wrap objects, and works on non JS targets as well. It also has a cool template binding system, similar to angular or Rivets JS, but fully type safe and compile time checked.

                      1. 1

                        Is the parent-kids interaction purely via an app? I would suggest an option to see what questions to ask(workflow) and have an option to call directly.

                      1. 1

                        Does anyone know how it compares to Adobe Brackets? They seem to have very similar architecture and goals, but brackets was already open source yesterday and is already cross platform today.

                        The main reason I ask is that I just put in a few days creating my first Brackets extension and wondering if I should jump ship while it’s still early.

                        1. 1

                          Unless I am have missed something Adobe Brackets is more aimed at html,javascript & css where Atom is more of an all around text editor.

                        1. 1

                          I think the original link had a much better explanation of the trends you see in the graphs:


                          1. 2

                            Thanks for the background. Just a general question about this tool, what would be the use-case for someone to target both C++ and Python? Is this meant for producing (for instance) portable libraries or full applications?

                            1. 3

                              A few possible use cases:

                              • I believe it was actually started by one of the maintainers of the Haxe / SublimeText plugin. The plugin had to be written in Python, but he wanted to be able to write it in Haxe (to invite more collaboration), and so he decided to try implement a python target, and a few other people pitched in to help. So that is one use-case: you need to write code for a Python environment, but are most comfortable with Haxe.

                              • You have a Haxe code base, but you need to write some tools (build tools etc) and Python has better library support. For example the Flambe is written in Haxe, but uses a Python-based tool to monitor assets and perform live-reloading. This tool could be rewritten in Haxe now.

                              • You have an existing library (like this 2D physics library) written in Haxe, and you want to use it in Python. This would generate the python code, then you just need to figure out how to wrangle it in to a format so you can bundle it is a library.

                              • If you had an existing Python web-app, but wanted to use something like Haxe for the client side JS, you could now use Haxe/Python on the server to glue the two together, allowing sharing of code between client and server, and having a more water-tight integration.

                              At the end of the day, I think this was written as a “because I can” target - it was not difficult to start it for the original project (a sublime text plugin), and a few people helped out. It gives me some hope that whatever the next-big-platform is, if I still prefer the Haxe language it’s not too hard to just write another target :)

                            1. 2

                              In the Haxe community I’ve seen a few efforts to generate strictly typed extern/proxy definitions from loosely typed Javascript modules [1] or from typescript definitions [2].

                              I guess this tool fits a different niche - rather than trying to add type information to a dynamically typed library, you write your library in something with strong type info (Typescript, Haxe) and then can compile down to JS, or share type information with other languages. An interesting approach, though it would be good if it was more automated, having to write your description manually is something I might not always bother with. (At least for Haxe you could generate this automatically at build time, using macros).

                              (Side note: I think this is the first time I’ve clicked on a link from a site like this and the example code has been in Haxe. Then I realized it was Prezi - those guys are using Haxe at a scale not many other companies are so it doesn’t surprise me to see them tackling difficult issues like this.)

                              [1] https://github.com/jdonaldson/jsdoc3-hxtern [2] https://github.com/Simn/ts2hx

                              1. 1

                                they’ve also hired the developer of elm, and are continuing to support it as an open source project: http://engineering.prezi.com/blog/2013/05/21/elm-at-prezi/

                                i’m excited about the fact that spaghetti could help statically-typed js core libraries take off, and be seamlessly adopted by languages and frameworks that use more dynamic types.

                              1. 4

                                Thanks for the brief introduction. Sometimes I find there’s technology like this which I know is useful, and I have been meaning to look into for some time, but most articles / tutorials that discuss it assume a certain level of knowledge that I don’t have yet. Elastic search has been one of those things I’ve been meaning to check out for well over a year now. Your little intro helps me understand just enough that I want to learn more - so thanks!

                                1. 3

                                  If you decide to start experimenting with Elasticsearch, we just pre-released the first cut of our new “The Definitive Guide” book here: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index.html

                                  Our documentation has been notoriously opaque if you were unfamiliar with the software. This book is more of a narrative guide and should be more helpful to beginners with little or no experience using search/information retrieval.

                                  1. 1

                                    The biggest complaint is the lack of documentation or example how to get started. Once a developer is able to get past that hump, everything is great. I hope this book helps out with that. It certainly would have helped me out. Having used ES for a while now, it’s fantastic. But that initial learning curve felt far steeper than it should have been.

                                    1. 1

                                      100% agree. The reference docs assume you already know how to use Elasticsearch (or are Shay himself). So they are great when you need to look up a parameter…decidedly less great when you don’t know how to even get started.

                                      We’re hoping the new book covers case where people have no idea where to start. It was written to help a beginner not just with syntax, but also why things work the way they do (we want to “dispel the magic” behind a lot of Lucene with regards to analysis, etc). IR/search is very different from regular DBs because of all the tokenization and normalization that takes place.

                                      The book is open source, so if you find typos and/or confusing sections, open a ticket! :)

                                1. 1

                                  I love this. I have a side project I’d like to scale up to be my main job, but as my current main job is also product development / programming, my days and nights and weekends sometimes end up looking all the same. I like the idea of having an outside obligation that is structured but low responsibility / low thought required, and gives you a change of scene, a different set of faces, and doesn’t consume too much of your focus - so you still have the focus and creativity for the project you actually care about.

                                  1. 5

                                    I almost appreciate it more when a patch is difficult to get merged. Yes, it takes more time and effort on my part (as well as others) but when you have multiple maintainers commenting on things from possible bugs, all the way down to coding and comment style, you know that it has been thoroughly vetted by at least part of the community. If a bug presents itself in that code sometime later, it also helps me feel a little better about having written that bug in the first place :)

                                    1. 5

                                      As a mostly solo/freelance developer, I can relate to this: rigorous discussion is one way to sharpen your skills. The depressing thing is when the discussion isn’t constructive, but it really just stonewalling, with no intention of ever merging or helping you get to a merge-able state.

                                    1. 13

                                      This was a great read. It’s something that I’ve never explicitly thought about before, but after reading it, it really hits home. I have a smattering of open source projects, and whenever someone submits a PR (yeah, I guess I’m one of the “cool kids” that likes the Github hokie pokie dance), I always see the contribution as a privilege. Namely, someone has taken the time to fix a flaw they perceived in my software. As someone who submits PRs to other projects myself, I know this usually requires a lot of time and effort, and so I always try to give deference to the contributor.

                                      Sometimes I do critique some of the PRs—usually with smallish changes—but I almost always offer to do the changes myself. I don’t feel I really have any right to demand that the contributor do extra work (particularly as the maintainer of not-so-popular projects). For example, one of my unmaintained projects received two PRs in rapid succession. The patches looked reasonable, so I merged them and then gave the submitter commit access to the repo. They went on to refactor some of the code and hopefully made a once unmaintained project a bit better for those that are still using it. This couldn’t have happened if all I did was whine about small things that I didn’t like.

                                      I guess for me, I came at this from an empathetic angle. I try to treat contributors how I would hope to be treated. But that’s a bit simplistic. This article really explained it much better than I could.

                                      1. 12

                                        Totally agree. For Leiningen I’ve stolen the “one accepted patch gets you commit rights” model from Rubinius (which I believe stole it from Hugs), and it’s been a huge success. We’ve had over a hundred committers, and I’ve only had to revert two commits. One of them was from an overzealous contributor who merged a patch that was only submitted as a joke.

                                        1. 2

                                          I hadn’t heard of the “one accepted patch gets you commit rights” model before - I like it and might give it a go on some of my small projects. Do you publicise that this is your policy, or quietly give them commit rights after a patch you think demonstrates they’re trustworthy?

                                          1. 4

                                            I publicize the policy, but I don’t add them to the list unless they specifically ask me. I’d estimate that less than 20% actually bother to ask. Occasionally I’ll offer and they’ll even decline if they don’t feel comfortable with it, which I think speaks volumes to the fact that if you put your trust in people, they will respect that trust and do their best not to violate it. Consider that the cost of granting commit rights to someone who will abuse them is actually very small; revoking and reverting is easy.

                                            It also doesn’t hurt that I offer a free sticker (if you send a SASE) once you’ve had a commit accepted. The content of the commit is immaterial; it can be a typo fix in the docs or whatever.

                                        2. 6

                                          To clarify my hokie pokie comments.

                                          I clone a project off github. I make a few small changes. OK, submit time. Because I have a checkout, I can make diffs trivially by running git diff. But I can’t commit and push. Oh. I’m supposed to switch back to the website and click fork. Then switch back to my terminal and connive to get git to push to my fork. Then switch back to the web site and click pull request. That’s frustrating to me, especially when the diff is already there. I can see it in my terminal. I know the partial solution is apparently to preemptively fork every project I might ever want to clone, but then my github page is cluttered with 9000 husks of never used forks.

                                          If you haven’t bought in to the whole system, it can be pretty off putting. I don’t mind some interaction with github if people like it (hey, your project, you host it where you want. I even host some stuff there), but occasionally it feels like there’s a “minimum 15 years experience with github” rule.

                                          1. 4

                                            I’m not going to pretend that submitting a PR on Github is easier than mailing a patch, but I do think it’s much easier than what you’re letting on here.

                                            But yes, I’ve definitely bought into the Github craze. I used its issue tracker last year as a TA. The instructor, another TA and I amassed almost 400 issues (closing 300 of them) in a single semester + a little bit of summer. We tracked everything from modifications to the course testing/grading infrastructure to actual grading tasks. We closed off issues with commits as we went and used tags/milestones/assignment to track who was supposed to do what by which date. (Notably, we didn’t use PRs. We didn’t have time to go through code review.)

                                            We had to spend a little bit of time (maybe a week) getting comfortable with the issue tracker, but once we did, it paid off in dividends. Since PRs are also just like normal issues, they can also be leveraged in the issue tracker. As you said, it’s a really great experience if you buy into it. I guess I just wanted to say that there are really some good reasons for buying into it. (Not that I think you implied otherwise!)

                                            1. 1

                                              I use GitHub all the time and am a happy customer. But the things you’re describing here are really bread and butter of any issue tracker. In fact, GitHub’s issue tracker is actually more limited than most; they removed the ability to sort/prioritize issues a few years ago, and now (within the context of a milestone or tag) issues always display in order of their integer ID.

                                        1. 3

                                          Hi all, this is my first time posting! (Loving the community so far)

                                          This week I’m working on releasing the changes I’ve made to the ‘ufront’ web framework for Haxe. The original version was modelled after the MVC.net framework, but the lead developer didn’t have much time for maintenance over the last year or so. I loved it, but have done a bunch of contributions to take it in a bit of a different, more Haxe-like direction.

                                          I’ve used my modified version on 3 projects so far, looking forward to packaging up the goodness so others can look at it and use it. Hopefully will be able to post links next week once there’s a bit more to see!