#software development

LIVE

ByRosalie Bartlett, Open Source Community, Verizon Media

In this episode, Ashley Wolf, Open Source Program Manager, interviews Eran Shapira, Software Development Engineering Manager, Verizon Media. Based in Tel Aviv, Israel, Eran manages the video activation team. Eran shares about his team’s focus, which technology he’s most excited about right now, the value of presenting at meetups, and his advice for being a great team member. 

Audio and transcript available here.

You can listen to this episode of Dash Open on iTunes,SoundCloud, and Spotify.

P.S. Learn more about job opportunities (backend engineer, product manager, research scientist, and many others!) at our Tel Aviv and Haifa offices here.

ByAshley Wolf, Open Source Program Manager, Verizon Media

In this episode, Gil Yehuda, Sr. Director of Open Source, interviews Joshua Simmons, Vice President, Open Source Initiative (OSI). Joshua discusses the Open Source Initiative (OSI), a global non-profit championing software freedom in society through education, collaboration, and infrastructure. Joshua also highlights trends in the open source landscape and potential future changes. 

Audio and transcript available here.

You can listen to this episode of Dash Open on iTunes,SoundCloud, and Spotify.

programmerhumour: We’ve all been there. You mean like that to-do list app I did in Rails a decade ag

programmerhumour:

We’ve all been there.

You mean like that to-do list app I did in Rails a decade ago? Like that?


Post link

People often ask me “what makes a good developer?” The truth is that there is no single answer. Everyone is different, and both possesses and lacks certain traits necessary to being a good programmer. Worry not, though, as these skills can be learned with just a little bit of advice.

With more and more junior developers sending me tweets and emails asking for advice on how to “be like me,” I felt like it was time to dish out some that advice.

Admit when you can’t

When working with a group, if you feel like something you’ve been assigned is outside of your skill range, speak up. By not acknowledging this gap in your skills, you only end up hurting yourself and your team. The purpose of working with a team is to help each other out.

Just because you lack the skills now doesn’t mean you should give up entirely. Observe how your team members solve problems you have problems with, and ask questions if needed. Whatever your issue may be, you should learn how to solve it, even if it does take effort.

Don’t take anything for granted

Every line of code you write is progress. Even the smallest of your projects has the potential to aid in a future undertaking, and the ideas you have as afterthoughts have the ability to shape your life. Don’t take what you make for granted, because you never know when it might pay off.

Be ready for failure

The world of software development can be a jungle; long hours, a lack of sleep, and a do-or-die attitude can cause emotions to flare in unpredictable ways. Sometimes you will fail, but don’t worry; it’s ok. Don’t let failure deter you from pushing ahead. As in life, you’re going to hit a lot of walls as part of your progress, but it’s important that you don’t give up. Hone your craft until you’re happy with everything you create. Chances are that your first app won’t rake in a million bucks, but it should make you feel like it did.

Learn from others

When someone critiques your code, mentions how something could be done better, or offers a suggestion, don’t take it as a personal attack or insult, and don’t become defensive. Listen to what they have to say, as this is one of the best ways to better yourself. If many people are telling you that you’ve done something wrong, chances are that you have. Be ready to admit when you’ve made a mistake.

Again, there is nothing wrong with asking for help, and if anything, I encourage it. If you find a code snippet that solves your problem, learn why and how it works, and see if you concoct a better implementation before relying on a third-party solution.

Take risk

Don’t be afraid to invest yourself in a project. Don’t be afraid to work at a start-up. Don’t be afraid to compete in a hackathon. Everything you do benefits you in some way, and the only thing standing in your way is yourself. Go all-in if you truly believe in something.

Have thick skin

If you reach any sort of notoriety, people are going to call you names, argue with you, and try and butt heads. You’re bound to be stressed, but you can let this drive you down. If petty names and insults encourage you to stop being a developer, you need to grow up. The world isn’t rainbows and sunshine, even if your employer paints a picture of a big happy family; at the end of the day, you are receiving cold monetary compensation in exchange for the labor you performed. Just do your job well and don’t let the small stuff hurt you.

Likewise, don’t attack other people because you disagree with them. If another person is doing something you believe to be wrong, calmly explain the problem. If they ignore or insult you, leave them to their devices. If you’re feeling particularly sadistic, pay attention as they fail, being sure to note to not do the thing they did in the future.

Don’t compare yourself to others

You will never be your idol. Everyone learns differently, and everyone has differing abilities. You can be great at backend development and cause a train wreck when touching anything relating to frontend. As the old adage goes, it’s better to be a master of one trade than a jack of them all. Focus on what you’re good at, learn what you want, and be happy with what you’ve made and can do. It’s o.k. to respect people and look up to them, but don’t envy them, for that will only slow you down.

In conclusion

I hope this advice is helpful to any aspiring developers. The biggest deterrent to programmers tends to be insecurity and a lack of willpower, and I hate to think that some of the most talented people who have ever come into programming were stopped short because of it. This is nowhere near all of the advice needed for someone to become a programmer extraordinaire, but it should help many people struggling to break through.

We may not become billionaires, but we can sure feel like we are.

Follow me on Twitter

getstrike:

I suppose I’ve been waiting to make this post for sometime.

some of you might be aware that since Aurous was sued and shutdown I’ve been quite absent from maintaining a few of my projects. Strike being one of the most popular. I receive constant emails that the search page no longer works; this was done for good reason. While I did attempt to make Strike purely a meta data engine after the lawsuit, I felt too exposed even operating it. While the API has remained online during this time period, it stopped offering downloads/magnets for hashes months ago, this doesn’t seem to have killed the sites popularity though. These are some metrics just in the last month

Keep reading

So heres what I’m up too post lawsuit

I implore Congress to amend the statute to reflect the realities of file sharing. There is something wrong with a law that routinely threatens teenagers and students with astronomical penalties for an activity whose implications they may not have fully understood. The injury to the copyright holder may be real, and even substantial, but, under the statute, the record companies do not even have to prove actual damage.

In the US courts its not about who is right or wrong, people can judge this for themselves, its about how much money can you spend. My only fear is that this lawsuit opens up other websites and services to attack. Aurous operated in the blind, our client just allowed people to utilize the API’s of 3rd party websites (YouTube, Soundcloud), even then look where we ended up.

   Introducing: http://getstrike.net/torrents/

 It’s that time of the year again, spring, where I attempt to create a new product that will help make everyone happier. This year I decided with my new found love for hoarding mass amounts of data, that i’d create something I thought was very much needed; a modern torrent search engine. 

    When I say modern I’m not just referring to aesthetics, anyone can make a web 2.0 page with all the latest trends. What I mean is a search engine that does all the hard work for you, one that knows you don’t want 6700 junk torrents with a “similar” string in them, one that can realize that tv show you just looked up has a new episode and should give it to you first, one that can tell you all the relevant information you need to know about it, quickly without redirecting you a billion times. 

image

   But that is simply the start of what I’m trying to deliver with Strike Search, Strike itself is a compilation of various FOSS I’ve created to help make a better Home Theater, this search hadto allow the end user to quickly get their desired torrent on any device. There is no need for word clouds or similar torrents, you as the user know what you’re looking for. Its the engines job to figure out the best result. 

   From the start I knew this would be a completely non-profit project, so sorry to all users, but there won’t be any hot singles in your area or fake download buttons filled with malware. I wanted to offer the cleanest experience I could for users, that is to say, while also keeping them safe.

image

   Which brings us to privacy, our policy is straight forward, as all should be.

image

   Any information that is logged is discarded within 24 hours, logged information is simply for engine learning reasons, nothing more, a local cache of common terms to help with the directing of results. Similar to stopwords.

    For all the developers out there, I haven’t forgotten about you, similar to my last major project Netflix Roulette where I attempted to create an alternative to the Netflix API, I’ve designed a robust API here for developers who need to seek information on torrents. You’ll be able to find a full write up on it over here: http://getstrike.net/api/

   But lets go over a few key points of features it offers.

If you just want to get the information of a single torrent based on its hash do the following

http://getstrike.net/api/torrents/info/?hashes=B425907E5755031BDA4A8D1B6DCCACA97DA14C04

You will receive the following JSON output

[{"results":1,"statuscode":200,"responsetime":0.0012},[{"torrent_hash":"B425907E5755031BDA4A8D1B6DCCACA97DA14C04","torrent_title":"Arch Linux 2015.01.01 (x86\/x64)","torrent_category":"Applications","sub_category":"","seeds":645,"leeches":13,"file_count":1,"size":"587 MB","upload_date":"Jan  6, 2015","uploader_username":"The_Doctor-","file_info":[{"file_names":["archlinux-2015.01.01-dual.iso"],"file_lengths":[615514112]}]}]]

Now if you require more torrents, simply place a comma and continue adding more hashes, the maximum is 50 a query. Duplicates are removed automatically by the API.

Go ahead and send this query

http://getstrike.net/api/torrents/info/?hashes=B425907E5755031BDA4A8D1B6DCCACA97DA14C04,5D4FD5A64E436A831383773F85FB38B888B9ECC9

You will receive yet another json object, this one containing two torrent arrays

[{"results":2,"statuscode":200,"responsetime":0.0013},[{"torrent_hash":"5d4fd5a64e436a831383773f85fb38b888b9ecc9","torrent_title":"FreeBSD 7.1 i386.DVD.iso","torrent_category":"Applications","sub_category":"","seeds":7,"leeches":0,"file_count":1,"size":"2.09 GB","upload_date":"Jan  5, 2009","uploader_username":"eauvision","file_info":[{"file_names":["7.1-RELEASE-i386-dvd1\\7.1-RELEASE-i386-dvd1.iso"],"file_lengths":[2239475712]}]},{"torrent_hash":"B425907E5755031BDA4A8D1B6DCCACA97DA14C04","torrent_title":"Arch Linux 2015.01.01 (x86\/x64)","torrent_category":"Applications","sub_category":"","seeds":645,"leeches":13,"file_count":1,"size":"587 MB","upload_date":"Jan  6, 2015","uploader_username":"The_Doctor-","file_info":[{"file_names":["archlinux-2015.01.01-dual.iso"],"file_lengths":[615514112]}]}]]

If you want more information on the API head over to http://getstrike.net/api/

Thats about all I can say, you can try out Strike Search here

http://getstrike.net/torrents/


Shout outs to http://dmxt.org/portfolio/ for designing the site!

Contact Info:

Email: [email protected]

Twitter:http://twitter.com/andrewmd5

image

As product owner in name only, I decided I had to run a great new product idea past some of the business stakeholders to get their buy-in for a test we wanted to run.

Me: We have an idea for a feature that will meet a customer request that comes up all the time, will save us money, and won’t require any additional work by staff. I just need a recommendation from you of a location that’s willing to work with us for a beta test.

[silence]

Me: So here’s the idea. [I describe the really awesome feature] What do you think?

Operations: But what about [insert all the worst case - and highly unlikely - scenarios they can think of]?!?

Me: Well, that’s why we’re proposing a small-scale test. We will be monitoring closely so that if those bad things - or other bad things we haven’t even thought of - start to happen, we’ll pull the plug or find a way to fix them.

Marketing: But if you’re working on this, doesn’t that mean you won’t be working on all the stuff we think up so that we can capture more data about our customers?

Me: I already have resources dedicated to your projects. This is a side project that the team thinks will really benefit our customers and the company in the long run.

Systems: But how will we measure? I’ll need to make a scheme change to track this?

Me: No, as I said, it will be a small scale test, so we can measure manually and decide if we need system changes if and when we go to full production.

All: Ooooh. I don’t know. It’s so scary. We’ll have to think about. We want to add [insert random list of complicated features]. We’ll need to test it for ourselves before we can decide.

Me: I’ll send you the wireframes and we can discuss.

I knew I should have gone with forgiveness rather than permission… This organization has no experience with agile development, so every project is full of bloat and delivers late (big surprise), with “features” everyone had to have and no one uses.

I’m just going to build it and figure it out from there.

We are building a form to allow users to create appointment slots on a calendar, which includes setting capacity (number of appointments) per slot.

ME: Can you remove the “prevent this page from creating any more dialogs” checkbox? I’m worried that users will check it and then will never be able to create another appointment slot. It sounds like a support nightmare waiting to happen.

DEV: Really? That’s native browser functionality.

ME: Um…

DEV: I’d have to build a custom dialog.

ME: How hard is that?

DEV: These are internal users. Can’t we just tell them not to check the box?

ME: Here’s the deal… You can either build the custom dialog or you can take all of the support calls when users can’t create appointment slots.

DEV: I’ll build the custom dialog.

(It took him 15 minutes)

loading