I've heard about unit test. They seems to be extremely important for a crypto application, but for a web app? Do I really need them?
mimoo: Hey I'm beginning with Rails, should I worry about unit test yet?
eladmeidar: tests are always important, in fact, it's more important than anything else
mimoo: it seems so boring though
fowlduck: don't bother with tests if you don't want to
fowlduck: remember to be conscious of frustration in pain while you develop, though, and try to figure out ways to avoid it later
fowlduck: you will almost certainly eventually feel frustration due to lack of tests
fowlduck: but wait until you feel it, if you want to
fowlduck: it's a good pain to feel. you don't quickly forget it
fowlduck: I like grapes
eladmeidar: i like grapes too
(extracts from #RubyOnRails on freenode)
If you use Rails you know that Rails also has some pretty weird routes for default.
And if you're like me you're wondering how is the browser understanding those requests. The requests are correct, and should be used but nowadays browsers only understand GET and POST queries. That's why they are often not used correctly and have lost a lot of meaning in web development.
So first, here's how Rails is doing it, by including jQuery_ujs, a jQuery plugin specially made for Rails that permits the use of those other verbs (DELETE, PUT, PATCH...).
What you write in Rails looks like that by the way.
<%= link_to 'Destroy', controller, data: {:confirm => 'Are you sure?'}, :method => :delete %>
And what it does is that it creates a link that will actually send a hidden form using POST with an input telling Rails it's actually a DELETE.
It's a hack. But it feels nice.
PS: And that's not all, jQuery_ujs does other useful things.
Rails is not a Ruby framework. It's a ruby+javascript+css framework.
I just pulled an all nighter on Rails. I like it. I really really like it.
I like Ruby. I like how everything makes sense. I like how things are pretty and I like how everything was setup for the perfect web developing experience.
Before that I used Django, and I didn't like it. Oh sure I didn't use it enough to have a real opinion on it. But my first impression was bad. The way it handled the static files, the namespaces ( /templates/blog/blog/ ), the way everything seemed to be made up and counter-intuitive. I didn't like it because it felt limited and forced, almost unnatural.
And well before that I used CodeIgniter, which I really like because it's dead simple and it leaves you a huge amount of liberties. This blog is made in CodeIgniter by the way.
But back to Rails. Here's what I like:
-
There is a convention. And it feels nice to be guided for once. There is a way to do things and you feel like you are coding correctly when you respect them. For example a controller should be a plural noun in CamelCase, like "Bears", and its respective model should be the singular noun, in this case "Bear". Database tables have to use the snake_case. And on and on.
-
There is beauty in ruby. The unless, the ?, the symbols, the syntax, the blocks, the... I like it. It looks beautiful and feels good to write.
- Everything is already prepared for you. There is CoffeeScript, Sass, jQuery, jQuery-ujs, turbo-link, ... and There is so much that is just waiting to be served. A gem away.
I feel dumb for having waited so long to take the leap. I heard of Rails years ago but couldn't see the point. I remember thinking Ruby was weird. Boy... Things are gonna get so much easier when I'll have a good understanding of this beast!
I've been on holidays, not doing much, mostly enjoying what is sadly my very last summer holiday sheds a tear.
But as usual, when I'm not productive I get all grumpy and I feel like I'm losing precious time.
Before holidays: "I'll have plenty of time to learn and code!"
During holidays: "Man I'm just gonna watch another episode of this new tv show"
So these past few weeks I chose to put android, google glass, unity and oculus asides. I'll deal with them later.
Now It's time to learn. And you can't create without learning the technologies first!
So the first thing I did was take a look at React and MongoDB. After spending a few hours with React I knew I didn't need it and fell in love with Angular. MongoDB seems pretty cool and it's my first time with a noSQL database (I followed the awesome Andrew Burgess tutorial on Tutsplus).
I've been reading a lot about Rails lately and I'm trying to gather all the info I need before starting my next project which will involve those technologies that I've never used before:
-
Ruby on Rails
-
Slim
-
Angular
- CoffeeScript
I already have a simple but useful project in mind.
I start school on September the 1st and I also want to be able to spend a week with GOlang before having too many things to do what I want.
BadUSB
posted August 2014
An interesting read about how any usb device could be a potential threat. Some scary extracts:
Once reprogrammed, benign devices can turn malicious in many ways, including:
- A device can emulate a keyboard and issue commands on behalf of the logged-in user, for example to exfiltrate files or install malware. Such malware, in turn, can infect the controller chips of other USB devices connected to the computer.
- The device can also spoof a network card and change the computer’s DNS setting to redirect traffic.
- A modified thumb drive or external hard disk can – when it detects that the computer is starting up – boot a small virus, which infects the computer’s operating system prior to boot.
And a scarier one...
No effective defenses from USB attacks are known.
Once infected, computers and their USB peripherals can never be trusted again.
Some proof of concept should be introduced in a week at the incoming Black Hat convention. This is gonna be good :)
EDIT:
There's actually something similar that you can already buy: The USB Rubber Duck
Pretty funny, and it's sad to see that it hasn't evolved much (besides some rare exceptions like 24 or The Social Network). For example that hacking scene in the last James Bond Skyfall. Never forget.
A nice and not too hard puzzle that could get you signed up for HackMIT, here's the write up: https://medium.com/hackmit-2014/joining-the-fancycat-club-hackmit-14-puzzle-guide-6f4ebef5b69
Someone wrote about this awesome explanation of what is AES from scratch on the #crypto channel on freenode. It's pretty nice!