32 vs 64 Bit in Windows – Has your binary been compiled for a 32 Bit or for a 64 Bit environment?

We all know that some Windows software has been produced for 32 Bit architectures, while other software has been produced for 64 Bit architectures. We also know that Windows software for 32 Bit architectures nicely runs on 64 Bit architectures, while the opposite is not true. Finally, we should also be well aware that mixing executables and DLLs built for different architectures is a guaranteed receipt for disaster.

For a system to work smoothly under Windows, ALL system executables and DLLs MUST be built for an architecture supported by the machine where the system is run. In other words, if your target machine has a 64 Bit hardware architecture AND it is running a 64 Bit Windows version, then you can run either 64 Bit or 32 Bit software on such machine. However, if your target machine is running a 32 Bit Windows version, even if the machine has a 64 Bit hardware architecture you can only run 32 Bit software on such machine.

In any case, it is paramount to check whether your Windows executables and DLLs are natively 64 or 32 Bit, so that you do not end up with compilation, linkage, and runtime nightmares. Unfortunately, checking whether a Windows executable or DLL is 64 or 32 Bit native is complicated. Various web posts point either to chunks of source code or to empirical methods that can be used to see whether a Windows executable or DLL is built for 64 or 32 Bit architectures.

Luckily, Nathan Osman (see the bottom of this stackoverflow post) has produced a small Windows application called PE Deconstructor which checks any Windows executable or dll to determine whether it has been compiled for a 32 Bit or for a 64 Bit Windows environment. I have used it to check executables and DLLs compiled using both 32 and 64 Bit versions of the MinGW-64 toolchain and it works perfectly fine.

Last revised by EC 16/1/2015

Extras for the ideal degree

A university degree should provide you with the means to pursue a range of options upon graduation so that you know how to take advantage of good ones when they turn up in your path. Irrespective of which ‘flavour’ of degree you choose such as ‘IT’, or ‘data visualisation’, you should leave with a working knowledge of the professional skills in your profession along with hands-on experience using the critical thinking of that same profession. In addition, you should also leave with a general set of transferrable skills in a range of areas, which you can use as needed.

In computing something that meets these needs would probably look something like this:

  • You’d learn how and why you should use version control, testing and other ‘practices’ in software development so that you know what is expected of you in a new role when you’re hired, or go on a placement with a company.
  • You’d work through the theory of different computing science challenges and also apply that theory in appropriate applications that you built individually and in teams as part of a class.
  • You’d have experience working with large open data sets so that you understand the challenges of what awaits you upon graduation.
  • You’d have experience working with live clients so that you understand, and have used appropriate professional skills dealing with clients and have suitable examples to illustrate the points you will want to raise about your experience in your interviews.
  • You’d have regular opportunities to talk to a range of developers and designers with a range of backgrounds so that you know the variety of options available to you from freelance to salaried positions when you’re looking for work later.
  • You be able to attend conferences that bring in local, regional, national and international speakers so that you know what is happening in your field and be able to network with potential employers as well as talk to developers and designers about the industry too.
  • You’d have opportunities to work on small to large projects with professional developers and designers in hack events as well as other types of shared practice events.

Kate Stone demoing drum poster

Each of these items offer you chances to build upon what you learn in the classroom and to help you realise the subtle aspects of computing as practiced by computing scientists, as well as what is done in software houses and how they share experiences between them. Together these different aspects help to make you more resilient and to use a variety of learning opportunities to make it easier for you to find your next step upon graduation whether this be research or working as a software professional, or any of the many other roles available in the ICT field.

Each of these items would also help you if you decide to strike off on your own, or with a few others and launch your own company. As a computer person, that option is ALWAYS there too and should not be ruled out either. Starting a company is easier when you’re not worried about losing a salary, and you could also start it while a student too using the entrepreneurial unit that most universities all have too.

Be a creative thinker for job security

We need to explore ways of bringing all students closer to the world of work while they are still students so that they better understand the context of why they are learning what we are teaching during their degree. The world is in a constant state of change and the world they enter after graduation will be different from the one they knew at the start of their degree. We need to help them learn to navigate this ever-changing landscape so that they remain in suitable employment throughout their career.

A number of recent reports show that more jobs are likely to be lost due to automation. Happily, more jobs are being created than disappear, but the types of jobs being created are not always as professional as the ones lost. The BBC even has a simple app, which will tell you the likelihood of your job being automated out of existence. The main jobs at risk are those which contain routine, repetitive work. This means an ever growing list of work is at risk of being lost to automation, as today’s algorithms become more complex and adaptable. This means more traditional managerial and administrative jobs are at risk than might’ve been previously thought as software moves into the legal field, and also other areas. Automation is found in more places that than factories now.

The key to future job security is to be working in an area requiring creative knowledge management based on human judgement. Yes, this can be in the creative industries in the widest sense to include ‘design careers‘ such software development as well as traditional fields found in art and design schools as well as the games industry too. This also includes education and those areas where processes are based around those work flows where each item is different and thus requires a judgement call.

Your job now is to consider where you are now and see what options you have to acquire the skills you need in order to develop your career in a direction that aligns along creative knowledge management. It might be that you need to form a portfolio of work to suit the career you desire, and not rely upon one specific option. While being more complicated, it also provides greater resilience for you and your career.
A good starting point for exploring where you are now, and where you might be able to transition yourself too is to work through the Business Model You worksheet. Ideally you should work through this with a friend or two, so that you each have someone to contribute to the discussion and remind you of aspects about yourself, which you’ll probably overlook.

Our role as educators is to see how we can bring in more opportunities for students to be ‘in the world of work’ while still students. This can be done through placements, students working with live clients on projects either individually, or as part of a group, and also interacting with professionals in events alongside their studies.

Entrepreneurship degree cancelled

We cancelled our Global IT Entrepreneurship degree, which is a bit sad. This is also why the site has been revised. We’re not sure why we didn’t get much interest in the programme. There is an ever-growing number of programmes around startups, and entrepreneurship in general, but we were unable to find the ‘sweet spot’ of overlap between those wanting to pursue a startup, and those wanting an academic degree. These people must be out there, but we had no luck finding them. So be it. Maybe the time wasn’t right for this venture.
The work I put into the programme has helped me clarify my own thoughts on how people can move from idea to implementation, and to better understand what stops people from exploring their ideas. If you’ve an idea and want to see it realised, then do the following:
  1. Do the simplest thing you can to try the idea. Build a prototype of some sort – use paper, or Lego bricks perhaps, but show it to someone who’s not a family member and get some feedback to help you decide if it’s viable or not. This information will help you decide whether to put more time and effort into the idea. Showing it to people also let’s them tell you what you’ve overlooked.
  2. Develop a customer journey map showing how your idea is used in practice. This will help you see what else might need to be put in place for your idea to have a better chance of taking off and growing. It could be that you need to find a partner with whom to work because they are the ones who pay for your service, but aren’t the ones who use your service. For example, we all use Facebook, but it’s the advertisers who pay for it.
  3. Know how to explain ‘why’ you are doing what want to do. If you can do this, then it is easy for others to explain your service. You need to explain ‘why’ you do what you do in a way that lets others extol your service easily to their friends. This means ‘how’ you do ‘what’ you do, should be easy to understand. But, most importantly, you need to explain ‘why’ it is important. All too often pitches cover what they do and how they do it, but don’t say why. Knowing a company’s motives makes it easier to trust them.
  4. Talk to people about your idea. The idea is less important than the implementation. If you keep your idea to yourself, then no one will take your idea and use it before you do. However, if you never share your idea, then you will also never see it realised. So, go talk to people about it, and get their feedback on what they think about it, and how it might be realised. There are lots of people out there, who can help you – for some people that is their job – so go find them and let them help you realise your idea.
Each of these is a starting point for you to see your idea happen. There are many people who can help you, so go find them, talk to them, and don’t be shy about it. Also, if it helps, get in touch with me. Always happy to help others.

Being an entrepreneurial student

This post on Medium that offers ‘A Guide to University for Student Entrepreneurs’ is rather good.

It covers university/not university as well as what to do while there, or not there to build a successful path to entrepreneurship.

It boils down to the following:

  • “A revolution in entrepreneurship is underway. Student entrepreneurs involved in technological innovation can reach a global audience with their new product or service
  • Go to university if you have the opportunity and there’s no obvious reason why you should not go
  • Include a technical degree in your studies or at least start with a software engineering subject
  • Make an effort: Meet new people, go to events and join clubs and societies
  • ‘Meander in your walk’ while at university and early in your career — try doing things you wouldn’t normally consider
  • Create an open network. Learn to be comfortable meeting people and develop into a network expert, be authentic and genuine in your interactions with others”

Go read and apply as best you can, as we’re all still learning as we move through life.

Tools for digital marking from Ginsberg.io folks

The nice folks at Ginsberg.io have posted a good review of what works for them in digital marketing on Medium.

Five essential tools for small digital marketing  teams

I like the piece as it provides the basics from which you can quickly find your feet and then move on to other things as you grow. It’s also nice as Kate was a speaker at our Northern Lights conference last October, and has also spoken at TechMeetup Aberdeen for us a long time ago too.

Easy ways to make a million

There is an interesting discussion in Quora about ‘What are some easy ways to make a million dollars?‘ The best answer, I think, is the one pointing out that you can do this by setting up a service you offer to others for $83/month. As soon as you hit 1000 customers you have your million. Sure, this isn’t your money to do with as you please, as you’ll need to pay expenses and overheads, but it does show that it’s achievable. More importantanly, it shows that it is repeatable. This million will keep coming each year as long as you keep your customers, and will also increase as you grow your customer base too.

Discussing ideas at Northern Lights 2013, University of AberdeenHappily in the digital era this is not too hard to do. You just need to find a service you can provide, which people are willing to pay for at a reasonable sum, and to set it up to look after itself. You probably have the tech skills, so just need some help with finding and developing your idea, and there are lots of places where you can find help with that. What are you waiting for?

Why are charities struggling to build and launch digital products?

Good discuss of startups and getting to revenue is important for both charities and others.

Mary McKenna's Blog

NESTA audience NESTA audience

This week I was privileged to keynote at the NESTA Impact Investment team’s Going Digital launch with NESTA’s Katie Mountain and Isabel Newman. Katie & Isabel asked me to speak because of my fairly unusual perspective – a tech entrepreneur who’s actually worked recently on a revenue generating digital project launched by an established charity. Earlier this year I was lucky to spend 4 happy months at vInspired, working with Sam Sparrow, Hannah Mitchell & Damien Austin-Walker getting awesome microworking platform Task Squad finessed and launched.

This blog covers the key elements of my NESTA talk without the personal anecdotes and side stories I included on the night. I should also just add a point of clarification here. This blog is about charities/CICs/social enterprises launching revenue generating digital products and services; it isn’t about making charity core business more digital. You won’t be surprised to hear that I…

View original post 1,541 more words

The start of the entrepreneurship degree

We have now started the MSc Software Entrepreneurship degree in Aberdeen and are pursuing a business idea with the team to see if it is sustainable. We brainstormed five business ideas the first week and then followed them up with some online research to see if there might be any opportunities with each of them. Some proved to have markets dominated by several players, others had a low barrier to entry so we’d be swamped and find lots of competition rather quickly. Another idea would only work if we found a way to establish some sort of credentials, which seemed important in the area. We were left with one idea, which is now being pushed further as we confirm our assumptions about the nature of the idea and determine the best approach to monetise the idea. One useful tool we used in this process was to blend ‘apps and technology’ with ‘themes and issues’ in order to find possible ‘mashups’ ideas. These could prove to be supplemental apps or benefits of the main service. Apps and tech plus themes and issues gives you mash up ideas We got the idea of this mashup from our fun friends at Snook, who have been recently posting about it with their ‘Whose Round‘ campaign in Glasgow. The ideas here pushed our ideas further and opened up possibilities of what can come later. Mostly at the moment we’re checking up assumptions that we have about who this would appeal to, and whether this is a sustainable idea using the Happy Startup Canvas and lots of paper and pens to write down assumption trees (following up the assumptions behind assumptions) in order to see what we’re really asking, and drawing out lots of diagrams in order to better understand the ideas and check that everyone understands them in the same way. It’s been a great time. If this sounds like something you’d like to do: spend time working out your possible business idea, while earning your MSc, then go sign up for the MSc Software Entrepreneurship degree and you too can join the fun.

Software Entrepreneurship for Companies and Employees

The MSc Software Entrepreneurship programme offers a number of benefits to companies. It can help train staff, and also help provide space to try new ideas. In either case the results will help the participating firm by developing the potential of staff, who can bring new ideas and skills into the firm.  Staff bringing back what they learn for themselves and others in the organisation helps develop the firm’s capabilities.

By releasing staff to take part in classes during the two days classes usually meet enables the staff to gain new skills, which can be applied to projects at work immediately as the materials are usually based around practical work. The person can work either on their own, or collaborate with others on a common project. If two members from a firm worked together, then they would be able to build upon their understanding of the skills and processes learned in the programme more quickly. The person or pair could work on a company project while working from the office and bring parts of this into the classroom as needed. As everything discussed in the classroom will need to be handled under an NDA agreement  in order to enable full discussion about ideas and projects, and not discussed with others outside the class, there is no need to fear lack of confidentiality for what is being developed here. In principle, the staff members never need reveal who they are working for to their fellow students. They can just say the work ‘for a local company’, and maybe even spot for talent to recruit if more staff are needed. Let’s explore this in more detail.

Cost to the firm

First, we’ll work out the cost of attendance, and the fees for the staff to see whether this makes economic sense for the firm.  Two staff attend classes twice a week for the whole day. This means they are not doing other work during this time. If they are paid £100/day on a £35k salary, this will cost the firm £150/day after the company’s contribution for pension and taxes are included too. This is £600 for two staff members to attend classes twice a week. We assume that the other three days they are taking what they learn in classes and applying it to their daily work on a project. On top of this we need to add the £150/week course fees for the pair, assuming they are about £3400 for the year. So we’re at £750/week in total for two staff members to attend the programme.

Working on the task board

The ‘classes’ are mainly seminar and workshop format, which means that as staff work through the materials they can quickly learn how the programme’s ideas and concepts can be applied to their own projects. As this is a ‘learning by doing’ programme, all of their coursework will be directed back towards an application of the ideas to their own project. They will be introduced to a concept, given an example, and then asked to apply it to their own work so that they can start reaping its benefits as soon as possible in order to grow their project. For example, one of the topics, which will be covered is the use of business model canvases, and in particular the ‘Happy Startup Canvas’, which helps anyone clarify ‘why’ they are doing what they do, as well as to explore the organisational values and how the firm explains its ‘story’ of what they do to others. This is something many organisations and projects in general struggle to do, and once it is clear, then ideas and concepts flow more easily. This applies as much as it does to startups as it does to established organisations, who sometimes lose sight of ‘why’ they are doing what they do and in how they explain this to others. Other topics discussed can be found in the course details on the StartupsExplained website.

Benefits for the firm

Second, we need to work out the benefits for the firm. Using the same example, we could assume that the clarity of gaining a better perspective on the ‘why’ and the values of the firm would need to translate into more than £750 of added value that week to cover the cost of attendance by the two staff. This would be done in the other three days of the week, and could include revised and amended publicity materials, which become more tightly focused on specific customer segments as derived from working out who is interested in the values of the firm and its ‘why’ statement.

In later weeks the £750/week is covered by improved understating of which problems the firm is solving for who by refining the customer more tightly, and by improvements in the software development process so that the firm builds what is needed as it is needed in a sustainable manner. Each of these weeks will both refine what is done by the firm, as well as help it to improve the throughput of what it does so that  its cash-flow increases by the end of the term.

Each week something brought back from the classroom by these two student staff members would reduce costs, improve cash-flow, or help move an idea to launch sooner. We want to help the firm raise income sooner than otherwise would be expected in development where costs are incurred before an income is derived from the project. We aim to make sure your project digs less deep and thus rises sooner so that your overall cash-flow is improved.

Any and all of the ideas, tools and processes learned here can also be used in other projects too, so the two trained members could roll out what they learn to the rest of the firm. This would eventually raise the whole organisation to higher levels of productivity. This expansion of the skills beyond the original staff would be the multiplier effect of this investment as your organisation eventually can all benefit from the initial investment of two staff members for the year.

The skunkworks option

This training could also be used to create a space under the programme umbrella  knowing that your ideas belong to you, and within which new ideas can be safely explored and developed in a confidential space with mentors and staff able to help you. This becomes a space for a skunkworks, which is off-site and full of the support a company needs to develop innovative services.  As with the two staff members outlined above, this programme could provide a worthwhile return for a reasonable cost. This space in the programme  enables ideas to be floated, modified and pivoted until they are ready for a wider launch. As noted above, staff don’t need to reveal their employer, so this becomes a skunkworks hiding in plain sight as ‘students’ on the programme. Here a team can explore ideas, work out their viability and launch them as well as spread the skills and ideas back into the company as well.

We provided a half-way house version of this approach once already. Under the umbrella of the Aberdeen Software Factory we helped Equibuddy explore a horse profiling application for their work in the Riding for the Disabled Association as part of our MSc IT summer group projects. When this proved viable it was pushed further by several students using an innovation voucher, and then funded towards a production ready application with a grant from Rank Foundation. The resulting application, Equibuddy Exchange,  now provides a healthy new income stream for the organisation.

We can help your organisation to leverage your staff to develop suitable applications to help your business grow. Get in touch to discuss how this might work specifically for your firm through our contact details, or email the programme director  to arrange a meeting to discuss any questions you may have.