Another look at Windows 10 in 75+ pictures

An early look into windows 10 in 75+ images

TCAT Shelbyville - ITIM

If you have Windows 8 or 8.1 you probably think that Windows 10 isn’t going to be a lot different.  You will see from the screenshots below that there isn’t a lot of navigation differences.  What you will see is performance difference.  Not just the look of the icons but the true performance differences when navigating and moving across your network.

The first operating system truly made for touchscreens and pcs.

In the screenshots below, we go from 9879 to 9926 with Cortana.  And where is the Charms bar?  It’s not there.  Look for Settings in the menu (See the last pictures below)

The login primarily stays the same as Windows 8.1.  The login screen contains the date, time, network status and battery information.  After swiping the screen or hitting enter, you’ll see the familiar login where you can select a user, restart, shutdown, reboot, network and accessibility options.

1 login …

View original post 833 more words

How Base64 converges to a point

I just got reminded by timehop of something I shared a few years back and wanted to share it again but talk about it a little more in dept. It’s an interesting subject if you know the ideas and problems addressed by cryptography, this one is about base64. It address the issue that, if we encode something in base64, then encode the result using the same method, the more we repeat this the closer we come to a fixed point the method hits. That is to say base64 has point where it will give you the same answer as the product you passed in.

 

This issue was looked into by Fran Mota who is a computer science student (according to his website at the time of writing) at Cornell University. Fran created the post The Base64 Encoder Has A Fixed Point back in 2013, so all credit to him for his research. I’m only want to chat about it.

 

The issue is, in base64 if we encode:

 

Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVU

 

If we decode this string we get

 

Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVU

 

So, Fran takes the string ‘lol’ and runs it through python’s base64 encoder and repeats the process and gets something like this

 

>>> base64.b64encode('lol')
'bG9s'

>>> base64.b64encode(_)
'Ykc5cw=='

>>> base64.b64encode(_)
'WWtjNWN3PT0='

>>> base64.b64encode(_)
'V1d0ak5XTjNQVDA9'

>>> base64.b64encode(_)
'VjFkMGFrNVhUak5RVkRBOQ=='

>>> base64.b64encode(_)
'VmpGa01HRnJOVmhVYWs1UlZrUkJPUT09'

>>> base64.b64encode(_)
'Vm1wR2EwMUhSbkpPVm1oVllXczFVbFpyVWtKUFVUMDk='

>>> base64.b64encode(_)
'Vm0xd1IyRXdNVWhTYmtwUFZtMW9WbGxYY3pGVmJGcHlWV3RLVUZWVU1Eaz0='

>>> base64.b64encode(_)
'Vm0weGQxSXlSWGROVldoVFltdHdVRlp0TVc5V2JHeFlZM3BHVm1KR2NIbFdWM1JMVlVaV1ZVMUVhejA9'

>>> base64.b64encode(_)
'Vm0wd2VHUXhTWGxTV0dST1ZsZG9WRmx0ZEhkVlJscDBUVmM1VjJKSGVGbFpNM0JIVm0xS1IyTkliRmRXTTFKTVZsVmFWMVpWTVVWaGVqQTk='

>>> base64.b64encode(_)
'Vm0wd2QyVkhVWGhUV0d4VFYwZFNUMVpzWkc5V1JteDBaRWhrVmxKc2NEQlVWbU0xVmpKS1NHVkdiRnBOTTBKSVZtMHhTMUl5VGtsaVJtUlhUVEZLVFZac1ZtRldNVnBXVFZWV2FHVnFRVGs9'

You can see that after four or five runs of this, some features start to stick. Once we get to nine, ten and eleven we really start to see things staying the same. This is because, as he states on the page, base64 has two phases if considered from a high level

  1. It takes a sequence of bytes (that is, digits in base 256), and interprets them as a sequence of digits in base 64, using four digits for every three bytes.
  2. It encodes the base 64 digits as a sequence of bytes, using one byte for every digit.

To explain the first phase, you need 8 bits to represent a byte, but a digit in base 64 only represents 6 bits. So in phase 1, base64 looks at 3 bytes at a time, and maps them to 4 corresponding base 64 digits. 3 bytes = 24 bits = 4 digits.

Then in the second phase, base64 makes these digits human readable. In doing so, it represents the 6 bit digits as 8 bit bytes, which is fine, if a little wasteful. So what was originally three bytes in the input becomes four bytes in the output.

As explained on his blog which I feel bad to quote anymore or, in a nut shell, the more we encode and the more we transition between 64 an 256 bits, the more restricted the map we can encode from becomes and there therefore, base64 will always converge to a point, a fixed point, a string known as

Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVU

 

 

ASCII fluid dynamics

I’ve been very busy of late and really want to keep this blog up and would like to do it in a serious manner. As I’m tied up for just a little bit longer I thought I’d make a fun post about an amazing command line program that I came across.

I’m in my final year of college and just a stones throw away from my degree, which is very exciting. I have an FYP just about finished, the idea is a peer to peer QR/NFC sales platform where credit cards/bank accounts are optional. I’m also starting a huge project with a friends I can’t get into right now but will be very excited and happy to announce it once I can. I’m working with ACI worldwide to create a hacking challenge that is going ahead this week. I’d love to share the link for sign ups but it’s closed after filling very fast, but they can be found on facebook for next year. Then finally I’m starting two jobs this week. One is back teaching kids how to build apps and the other is my regular job in Limerick’s University ICT centre and will take up time between my classes. On top of it all, as if I have time or money to spare, my wanderlust girlfriend will not stand for the fact I’ve never left the country and so has made it her mission to take me as many places as she can. Three times now in the last four months I’ve been out of Ireland and another to come at the end of this week.

So time to spare is non existent, but I did want to check in just to keep this blog looking a bit alive, so I’m sharing this amazing command line program I found that will take any text file and apply fluid dynamics. This video will demostrate everything this command has to offer.

The creators say the program is

This program is a fluid simulator using “Smoothed-particle hydrodynamics (SPH)” method.. This program reads a text from standard input, and uses it as an initial configuration of the particles. The character # represents “wall particle” (a particle with fixed position), and any other non-space characters represent free particles.

The compilation options -DG=1 -DP=4 -DV=8 represent, respectively, the factor of gravity, pressure, and viscosity. By changing their values, you can see different fluid behavior.

The code can be found here, just compile and have fun. It’s a great little idea and deserves a bit of credit so well done

There is a great temptation among people starting to learn programming to use the computer far too early….

There is a great temptation among people starting to learn programming to use the computer far too early…. Occasionally this works, but the resultant program is usually very badly constructed and hard to understand. — How to Think Like a Programmer: Problem Solving for the Bewildered [Paul Vickers], opening of chapter 2, A strategy for problem solving

This quote is the grounds of it all. This is formed from the idea that made me want to take the route into computer science that I’m taking, problem solving. I’ve seen many potentially good programmers quit or waste too much time learning things the wrong way. I know it takes a lot of time but doing it right can cut that time down.

 

One of the biggest problems I see is not understanding the problem and how to solve it. This is how my blog will work. Looking at problem solving techniques, how to break a problem down, how to program to prevent problems from being coded into a program and how to understand problems and how to solve them, not just in programming, but in maths, logic and anywhere else lines can be drawn between these subjects

The Case for Slow Programming

Great insight. I find that when I have everything planned I just want to smash into the code and often hit a problem and can’t think about what it even is properly. If I didn’t have to do a lot of study tomorrow I’d adopt this paradigm for a day to try it out

Earth...Brains...Technology...Design

My dad used to say, “Slow down, son. You’ll get the job done faster.”

I’ve worked in many high-tech startup companies in the San Francisco Bay area. I am now 52, and I program slowly and thoughtfully. I’m kind of like a designer who writes code; this may become apparent as you read on :)

Programming slowly was a problem for me when I recently worked on a project with some young coders who believe in making really fast, small iterative changes to the code. At the job, we were encouraged to work in the same codebase, as if it were a big cauldron of soup, and if we all just kept stirring it continuously and vigorously, a fully-formed thing of wonder would emerge.

It didn’t.

Many of these coders believed in thefallacy that all engineers are fungible, and that no one should be responsible for any particular…

View original post 888 more words

My favourite places to learn programming

I love how many new people are looking into programming and I get asked all the time about good resources. We all know you can google “how to java” and it will negate the bad grammar and bring you to a junkyard full of resources. All teaching roughly the same thing, the logic of programming. But being such a vast result….. what do you do with it?

See the thing here is you can sit down and learn all the ways to make a string and print it or create an object, but that’s not doing much for you if you’re just following examples and not thinking for yourself. A good programmer has a logical mind and is able to think of all possible avenues of a problem, not follow a tutorial better than anyone else. It’s hard to find that kind of teaching in these results.

The first place I wanted to pass on is a site called project euler and will really make you think about how to use some basic concepts to make some complex structures but also will make you look into things on your own and think of more efficient ways to solve things. At the heart of it all though, it’s main purpose is just to get the right answer to a crazy maths problem that no one would ever ask in the first place, which frankly are the best kinds of math problems, while also taking you from if statements to pointers and will push everything you know with every new problem.

There’s also things everyone should just know on their own. That is to say that we can’t hold your hand across every interest that’s out there and how to get involved. It’s impossible, people and minds change all the time, so you need to know where you can find something that tickles your fancy and you can work on yourself. That’s where coursera comes in. It will give you online courses in what ever you might think you’re interested in. It will start you off small, give you assignments and give you a feel what what caught your curiosity. Maybe you’ll love it, maybe it’ll just never mean anything to you again, but either way you’ll have an answer. There’s so many amazing courses on that site it’s impossible not to mention.

It’s a long journey, learning to code, but it’s got some of the best views along the way. It’s not easy and you have to keep at it, but there’s lots of ways to get there and well worth it. It’s exciting pursuing something that doesn’t have an end and can amaze you every time you think you’ve seen it all

Back to the blog

Seems I just could not keep away.

Hello again world of readers. I’ve decided that I’m going to take up blogging again. Strange time as I’m in the middle of study for exams this week but if any of you have ever had to study and found weird things to distract you, this kind of procrastination should make sense to you.

It’s just that I’ve been doing a lot lately and things have changed so much in the tech and programming world that I just wanted to get back and talk about it.

tumblr_m7jhivE7DP1qhy6c9o6_250

When I started with my first blog, infoturtle.ie, it was all java, android, bash, linux and news as filler. Now I’ve come to love python, perl, C++, software architecture, and really just want to share some of the new things I’ve learned with people who are interested in programming too.

The blog will be different this time as I won’t be hosting on my home server myself and it will be much looser about computer science but will always have some tie.

So if you’re intrested in computer science, cryptography, software architecture, software patterns, or all forms of programming, I hope you can stick around!