HNHacker News
TopNewBestAskShowJobs

kellros

159 karma · joined December 7, 2011

I am a software developer and consultant focusing on small to enterprise size systems and business growth.
submissionscomments
kellros··on Seriously, why is software so hard for non-software companies?
Interesting article. One thing I've found working with tech and non-tech companies is that the tech companies generally talk more in absolutes (truths) while non-tech companies prefer to talk in assumptions (this is how it always worked).

In my opinion the biggest challenge of working with non-tech companies on a budget (time/resources/cash) is to get them to commit and consider all the consequences (ea. edge cases) during software design. They tend not to get that programming is the act of implementing a (designed) solution and not a method of solving problems.

kellros··on Ask HN: Load Images with JavaScript
You can google for JavaScript image lazy load

http://lmgtfy.com/?q=javascript+jquery+lazy+image+load

You can also check this out, it seems pretty spot on:

http://www.appelsiini.net/projects/lazyload

kellros··on How to use interfaces in Go
Thanks for the post, it's very informative. I believe it would bode the go community well to publish guidelines/best practices on exposing reusable types/interfaces for re-use. Some libraries I come across simply make it very hard to extend minor behavior without a. modifying the library, b. copying the code from the library and not using the library or c. requires elaborate workarounds that requires creating a new type and passing in the old one (composition) and re-implementing the old types' interface and simply calling the old type to change the behavior of a single method via closures.

Perhaps I'm still very new to go, but I find the hardest part of writing go is reusing external libraries that don't exactly do what you require.

kellros··on Ask HN: Best way to install JS?
Well, consider a starter kit (install script to copy/paste) vs. being spoon fed (integration into other software to reduce installation to a simple product flag with optional configuration). A lot of people still prefer using JS libraries directly, specifically for development purposes instead of using a CDN.

At this moment I'm not entirely sure what your JS library does, but if it can be referenced locally, then it would be worthwhile to allow grabbing it via npm/nuget/similar package managers.

kellros··on Ask HN: What gets you out of bed?
My secret to getting out of bed: I sleep with socks on!

I find it's also much easier to get out of bed when you know what you need to accomplish and what's on your agenda for the day. A sense of urgency is a great motivator.

kellros··on Ask HN: Do you have side projects you want to sell?
Possibly for both buy and sell.
kellros··on Ask HN: How do you focus?
I find setting personal short term goals with self made-up deadlines (ex. I want to complete this section within the next 2 hours) really helps. Bear in mind if you can't measure what you do this won't work. (ex. if you don't know how long something will take or what exactly you are trying to accomplish).

It's also important to switch off between changing focus (ex. from one project to the next, take at least an hour break).

I reckon your biggest problem at the moment is context switching. I'd suggest you allocate your time explicitly (first learn and then do - instead of trying to build something useful while still learning).

kellros··on [dead]
I reckon I'm old school when it comes to business - a business is not a business unless it's generating profit.

Perhaps in some first world countries it's feasible to do startups, but most people don't have the luxury. Most people I know start their businesses while working full time and only transition once the profitability satisfies their needs. Hence for them at least, it's always profitability first and then sustainability, followed by growth.

kellros··on Ask HN: Online undergraduate programs for web development?
Just my opinion, but I don't think you'll find any. Bachelor degrees are usually broad-focus while web development is rather narrow. Your best bet would be to do certifications that contribute credit towards your degree (ex. in South Africa it's called SAQA credits). Good luck!
kellros··on Ask HN: Would you hire me?
I would definitely take it under consideration. What financial degree do you possess? I'd imagine with your previous education that you would be well suited in the financial industry (whether it be stock trading, banking or even healthcare).

The only bit of advice I would suggest is that you consider the technology stacks used by such (or other large) companies. I'd definitely look at acquiring experience with a VM framework (ex. .NET or Java) as you can benefit from that knowledge using multiple programming languages and many companies prefer such experience.

Alternatively you should also consider doing some certifications - especially for junior roles. The next best thing to employed experience is freelance/consultation experience. I personally prefer if candidates do have experience freelancing as it indicates a certain level of competence in multiple areas (project management, planning, delivery, communication etc.). If you are good enough as to bill for your time, then so should any company planning on hiring you :)

kellros··on Ask HN: What questions to ask potential customers to validate idea?
I'd suggest you go read The Lean Startup, as this is the source for the suggestions on HN.

You validate ideas by applying validated learning:

1. Figure out what you want to learn (ex. an assumption: customers want this product because it allows them to easily do x)

2. Figure out how you will learn via metrics (ex. measure: how many customers sign up based on advertising based on this assumption)

3. Do what is required to gather the metrics. (ex. act: advertise based on the assumption to gather metrics for analyses to validate your assumption).

Sort of sounds like Act/Track/Learn :)

The Lean Startup proposes that you approach a product by asking the following questions:

1. Is this product valuable to my customers?

2. Would customers buy this product?

3. Would customers buy this product from me?

4. Can I build this product?

Point 1 & 2 refer to validating the viability of ideas, while 3 & 4 is more of an introspection regarding availability of skills/resources/advantage etc.

Good luck!

kellros··on The Onion releases fartscroll.js
After playing with this for about 3 seconds I realized this would be perfect for a ticking timebomb. The use case: You configure your freelance/consultation web app to start injecting this script 1 month after an invoice is due and not paid. I would bet the clients will be hurrying to pay your invoice after they get complaints of farting sounds coming from their website!
kellros··on Btcd: A Full Alternative Bitcoin Implementation, Written In Go
Should definitely build this with the gcc go compiler (which featured a couple of days ago on HN) that produces larger binaries but faster code :)
kellros··on There's Just No Getting around It: You're Building a Distributed System
Thanks for sharing
kellros··on Ask HN: How to build a resilient, scalable REST api that is open to the web?
You should probably consider the process design more than the technology (for now).

Goals:

1. Whenever receiving a request for processing, you should return a task identifier that can be used to check for progress (ex. you could simply store this in redis as 'TaskId', 'Url', 'FileId', 'Type', 'Status', 'OutputId' - with Type being the type of input: URL or FileId)

2. Once the client received the TaskId, it can do a request to get the status, which would could be 'Pending' or 'Complete' with an URL to the output.

Process:

===================

Request Processing:

-------------------

1. Receive the request with parameters (can users upload files or simply pass through an URL?)

2. Create a token based on the hash of the input file and the parameters supplied (ex. MD5 hash of the video, from time, end time of the video to capture).

3. Check if a task identifier has already been assigned to the token, if it has, return it. This means the client will then do a request to check for the status and would receive { 'Status': 'Complete', 'URL': '...' } and can immediately access the output via the URL.

4. If the video is uploaded, check whether it has been saved via hashing the file (ex. MD5), if it has then use the existing FileId, otherwise, save the file and generate a new FileId.

5. Generate a new task identifier and create a task entry to store in redis that contains metadata about the task.

6. Create a command containing the task identifier and publish it to the message queue for processing (which is asynchronous).

7. Return the task identifier to the client.

Task Processing:

-------------------

To process the video, you would simply grab the metadata from redis and update the progress as you go along. If the task identifier doesn't exist (no metadata entry on redis), simply abort the task processing.

Although this is pretty simple, you should focus on optimizing file storage (ea. don't store the same file twice and reference them by MD5 hash or the like and perhaps have a cleanup routine to remove rarely/once-off used files) and processing time (if the task has already been processed, simply return the output). You should also decide on limitations to prevent abuse (DOS/DDOS attacks, large file uploads, what the service can be used for etc.) and limit your liability.

Is this the answer you were looking for or are you asking about the specifics of implementation (technology wise)?

kellros··on Why should you use Evernote? Because it will change your life
I've started using Evernote over a year ago after a colleague suggested it. I was looking for a simple way to manage to do lists and other arbritary information (especially from what I receive in e-mails). I use the non-synchronizing private notebooks for work related stuff - I don't use Evernote for personal reasons.

So far it has served the purposes for what I needed, I have only one gripe with it at the moment - and that is the copy/pasting of HTML like content that often ends up mangled (which is sort of expected from HTML based WYSIWYG like editing).

kellros··on Poll: Do you have a 3d printer?
I don't know enough about current 3d printing to really know when this is possible, but I'm pretty sure it won't be tomorrow. If you could combine Soylent Green with 3d printing, you'd have a recipe for Star Trek food :)
kellros··on Poll: Do you have a 3d printer?
I'm waiting on the day that 3d printers can print hardware (ex. CPU's, RAM chips) and the designs/models become available for sale or become FOS.
kellros··on Ask HN: How long should it take to build this web app?
Hi, I'd suggest that you read The Lean Startup if you haven't, it should put you on the right track to determine priorities.

Web development is a beast and very different from traditional thick clients as you often have to cater for multiple types of users (roles & permissions) as well as multiple portals (different user interfaces and interaction based on users). Most projects would typically require at least two distinct portals: traditional user portal and administration portal. For franchises there are usually two levels of administration (top level/standard level) that requires different views of the data (ex. across the franchise for administrators and impersonation of standard franchisees).

In my experience there isn't really a simple crud application - the information you collect depends on the functionality you provide. Many users is also very abstract as it will impact your infrastructure requirements - too many unnecessary abstraction layers will really slow down development but is typically required for SOA/N-Tier/CQRS stacks.

My advice is simple: Pick one thing and go through the process of validated learning. It's possible to run a successful business on an adhoc stack - it's not required to run perfect software from the beginning, but flexibility and adaptability sure helps. I'd almost say build something quick and dirty that you can change/scrap easily depending on your business requirements till you reach the point of the business being profitable, then you can invest more into it.

kellros··on Ask YC: Where to find practical guide on gamifying?
My opinion is that gamification is like cooking - you don't just to cook - you learn to cook specific things.

I'd suggest you follow the Lean path in applying gamification:

1. Determine what behavior you want to enforce (Measure)

2. Determine how you will enforce this behavior (Plan)

3. Build the functionality required for the above (Build)

You should also decide where to draw the line; i.e. are you building a game or are you gamifying features to enforce certain behaviors.

You should definitely read Jeff Atwood's post on gamification here: http://www.codinghorror.com/blog/2011/10/the-gamification.ht...

Here are some good examples of gamification:

http://www.stackoverflow.com/

http://www.codeschool.com/

http://tryruby.org/levels/1/challenges/0

kellros··on How to rob an online casino
Perhaps, but house advantage ensures you will keep losing in the long run. The only thing keeping you from a guaranteed win in the long run is the table limit. I ran some simulations a couple of years ago to test some strategies - it was quite shocking to see how common losing 17+ in a row is. Losing 6 in a row is bound to happen every few rounds due to martingale system relying on a lot of 'small' rounds to scrape in winnings.
kellros··on Manual Scaling
The obvious thing that is being missed is that manual 'scaling' would most probably result in higher quality data. I would consider this critical for data sensitive businesses.

One of my clients I do some consultation work for from time to time actually prefer the manual process. It allows them finer grained control to better manage the quality of data/advertisements because the majority of what they do involves graphic art. They have effectively turned manual scaling into a competitive advantage.

I sincerely doubt they will always prefer this route - but at the moment it seems like the best approach (until all their clients are computer savvy and solely work with artists and not try to make a flyer or the like themselves with Microsoft Paint).

kellros··on Ask HN: Is it a good decission to partner with a client?
I tend to agree. I would only consider partnering up if the partners would need to work at least as hard as me and the concept was already validated and making money already. It really comes down to risk/reward since no matter how much you enjoy the job/project, you still have to fulfill your needs/wants and responsibilities. Obviously there is always risk involved, but you have to weigh up this opportunity in terms of career advancement and your well-being.
kellros··on PC sales plunge, Microsoft and Windows 8 blamed
Am I the only one finding it hilarious that non-hardware specific software is being blamed for the lack of hardware sales?

There are a couple of reasons why PC sales are declining: 1. Speed per CORE isn't dramatically improving and most users only really need 1 or 2 cores 2. Hardware is very expensive for top line components in comparison to 10 years ago 3. Every 2 years a new chip set comes out that requires you to replace your mobo (and possibly your ram) if you want to upgrade your CPU - in conjunction with that, a lot of software is getting bound to a machine - meaning that if you replace your motherboard you have to re-license your software - ex. Windows which turns a previously relatively cheap process (ex. replacing a cpu) into a very expensive process (replace cpu, mobo, ram, software). 4. Hardware intensive applications ex. games, some software; require top of the line hardware that requires you to spend $1500 - $3000 from scratch vs. $150 - $300 for a console - in my opinion that makes a PC undesirable. The word 'recession' has been hanging in the air since 2008.

I'm still using a 5 year old 2.2Ghz AMD quad core at home. I'm saving up for a new machine to last me a couple of years but the pricing is quite steep - about $5500. The only reason why I'm willing to justify that amount is because 1.it speeds up the rate at which I can do freelance/consultative work and directly affects my rates 2. I am a gamer 3. I sometimes need to work overtime from home. On a funny note; someone suggested I buy a car instead because its value would depreciate slower!

kellros··on Are you an underpaid developer?
It really depends on the area. I would classify my current salary as low-end for middle class. For your (low-end) basics (travel, food, accommodation, health insurance) it's around $24K a year in the slightly more expensive areas. Gasoline costs typically offset accommodation costs - especially now that it's around $45 to fill a 35L/9.2 gallon car tank.

South Africa is pretty strange in the sense that certain areas have a huge effect on living costs - you might pay 10%+ less on groceries simply by driving to another suburb. Some cities (ex. Pretoria) are more prone to be targeted by the government for money making purposes - ex. increasing taxes in Pretoria to pay for new roads in Durban (600Km/~400 miles away).

kellros··on Are you an underpaid developer?
This made me cry a little inside. I make slightly less than a third monetary wise of the lowest Average Salary by Speciality with 4 1/2 years commercial dev. Most of the 'high' paying jobs in South Africa is around the $66K a year mark.
kellros··on Ask HN: What code-editor do you use?
Will do, thanks.
kellros··on Ask HN: What code-editor do you use?
I mostly do ASP.NET MVC development, so I use Visual Studio 2010 + 2012 with a bunch of plugins daily. I also bought a bunch of other IDE's on JetBrains' end of of the world sale including Intellij Idea, WebStorm, RubyMine and PyCharm. I have found they are a lot slower than VS 2012. I haven't worked with Eclipse/Netbeans in over a year. Other than that I usually use Notepad++ daily and I really like SublimeText - I've used it on trial, but haven't bought a license yet. I also use Microsoft Management Studio for T-SQL, otherwise one of the aforementioned text editors. A couple of months ago I was hacking away on Ubuntu and found Geany - which is actually pretty good for what you pay for (free). CodeBlocks on windows is not bad either. It might be a good idea to specify language of choice with preferred IDE if that's what you're after :)
kellros··on Predicting the next 25 years
The 'shades of white' reminds me very much of most of the websites on the internet :)
kellros··on Developer Job Interview Tips
Pretty good article and I'm looking forward to watching your course on pluralsight. My wifes' friend works as an IT recruiter and we discussed in depth what myself as a developer looks for in recruiters (mixed interests - recruiters favoring employers over hires, basic knowledge regarding the spec the candidate is being interviewed for etc.). After our discussion, she subscribed to pluralsight so she could gain introductory knowledge on some technologies when she is looking for candidates - even though she is not a developer, such knowledge is invaluable (ex. knowing a sharepoint developer requires asp.net experience, or just some basics on JQuery/Scrum/Kanban etc.).

I've only been an interviewer a couple of times for dev positions, but I tend to look at attitude, passion for the job/industry (incl. self improvement regarding practice and learning via books/training courses), participation in communities/projects and freelancing experience aspects. If someone can get regular freelancing gigs that pay money, then it's a good bet that the developer is able to earn his keep and is pretty self-sufficient.

← PreviousPage 3 of 7Next →